【问题标题】:How to rename a column of a Pandas dataframes list with different name如何用不同的名称重命名 Pandas 数据框列表的列
【发布时间】:2020-07-07 14:08:52
【问题描述】:

我有三个数据框,其中一个列在所有三个 dfs 中具有相同的名称(“col_0”):

>>> df_a

    Date        col_0
0   1/22/2020   4.0
1   1/23/2020   1.2

>>> df_b

    Date        col_0
0   1/22/2020   4.1
1   1/23/2020   1.3

>>> df_c

    Date        col_0
0   1/22/2020   4.2
1   1/23/2020   1.5

我想使用循环在名称列表new = ["A","B","C"] 中使用不同名称重命名每个 df 中的每一列,但我无法这样做。我已经尝试使用理解列表来命名每一列,但我得到了 9 个数据帧(每个数据帧中的三个具有新列表中的新名称)。

>>> [i.rename(columns={'col_0':j}) i for i in [df_a,df_b,df_c] for j in ["A","B","C"]]

但我真正需要的输出:

>>> df_a

    Date        A
0   1/22/2020   4.0
1   1/23/2020   1.2

>>> df_b

    Date        B
0   1/22/2020   4.1
1   1/23/2020   1.3

>>> df_c

    Date        C
0   1/22/2020   4.2
1   1/23/2020   1.5

任何想法如何获得该输出。首先,谢谢。

【问题讨论】:

  • 只需使用zip 进行元素循环。

标签: python pandas dataframe rename


【解决方案1】:

尝试使用嵌套循环:

columns = ['A', 'B', 'C']
dfs = [df_1, df_2, df_3]

for column in columns:
    for df in dfs:
        df.rename(columns={'col_0': column})

【讨论】:

    【解决方案2】:

    IIUC

    df_a,df_b,df_c=[i.rename(columns={'col_0':j}) for i, j in zip([df_a,df_b,df_c],["A","B","C"])]
    df_a
    Out[565]: 
            Date    A
    0  1/22/2020  4.0
    1  1/23/2020  1.2
    

    【讨论】:

      猜你喜欢
      • 2019-09-26
      • 2018-01-04
      • 2014-10-26
      • 2017-12-03
      • 2018-12-21
      • 2022-06-14
      • 1970-01-01
      • 2021-11-15
      • 2021-09-03
      相关资源
      最近更新 更多