【问题标题】:Pivoting dataframes in for loop Python在for循环Python中旋转数据帧
【发布时间】:2022-12-18 10:52:12
【问题描述】:

我正在尝试在循环内旋转数据帧。

我听说如果我将它们放在列表中,我可以对多个数据帧进行更改,例如:

df_list = [df1,df2,df3,df4,...]

我一直在使用这种方法对所有数据帧进行更改,例如:

for df in df_list:
    df.drop('column_name',axis=1,inplace=True) #drops column from every dataframe in df_list

但是我正在尝试做一些不会对数据帧产生任何变化的事情。

每个数据框看起来像:

Time        Value    hist
11:14:23    2.0      12
11:14:23    1.5      78
11:14:23    1.0      31

我希望它看起来像:

Time      1.0      1.5      2.0
11:14:23  31       78       12

我试过这个:

for df in df_list:
  df = df.pivot(index='Time',columns='Value', values='hist')

但在此循环之后,所有数据帧都保持不变。

更奇怪的是,如果我单独为数据框执行此操作,它会完美运行,只是在循环中不起作用。循环是必要的,因为有超过 20000 个数据帧要进行此更改。

所有的帮助都是非常宝贵的,谢谢! :)

【问题讨论】:

  • df_list = [df.pivot(index='Time',columns='Value', values='hist') for df in df_list]

标签: python pandas dataframe for-loop pivot


【解决方案1】:

由于 DataFrame.drop 或 DataFrame.pivot_table 创建了一个新的 DataFrame,您可以继续:

df_list = [df.pivot(index='Time',columns='Value', values='hist') for df in df_list]

【讨论】:

    猜你喜欢
    • 2021-07-26
    • 1970-01-01
    • 2022-01-02
    • 1970-01-01
    • 2016-12-19
    • 2022-01-10
    • 2017-03-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多