【问题标题】:Pandas Renaming columns based on cipherPandas 基于密码重命名列
【发布时间】:2019-01-02 19:09:58
【问题描述】:

我在数据框中有一列,其中包含传感器标识符和不同的值。我有另一个数据框,其中包含传感器名称的简单英文描述。它看起来像这样:

Date          zz8029    df456sz
2017-01-01    1            2
...           .            .
...           .            .

密码,第二个数据帧如下所示:

name     description
zz8029   ROOM201-TEMP

有没有办法使用密码第二个数据帧以编程方式重命名第一个数据帧中的所有列?有数百个传感器名称,因此手动重命名它们不会这样做。结果看起来像这样

Date          ROOM201-TEMP    ROOM200-TEMP
2017-01-01    1                2
...           .                .
...           .                .

【问题讨论】:

    标签: python pandas dataframe rename


    【解决方案1】:

    使用map,其中 arg 是索引为“来自值”的序列,值是映射到的内容:

    df = df.set_index('Date')
    df.columns = df.columns.map(df2.set_index('name')['description'])
    df = df.reset_index()
    df
    

    输出:

             Date  ROOM201-TEMP  ROOM200-TEMP
    0  2017-01-01             1             2
    

    【讨论】:

      【解决方案2】:

      有,好老pd.map。它适用于系列,但我认为可以使其适用于列名

       z = {k: g.description.values[0] for k, g in df2.groupby('name')}
       df.columns = df.columns.map(z)
      

      【讨论】:

      • Scott 在我写作时发帖,但你可以看到我们同意使用地图
      猜你喜欢
      • 2020-05-24
      • 1970-01-01
      • 2015-12-06
      • 1970-01-01
      • 2019-07-21
      • 1970-01-01
      • 2020-08-03
      • 2023-03-12
      • 2020-07-05
      相关资源
      最近更新 更多