python pandas 循环熔化或旋转多个 df

python pandas loops to melt or pivot multiple df

我有几个结构相同的df。我想创建一个循环来融化它们或创建一个枢轴 table.

我尝试了以下但没有用


my_df = [df1, df2, df3]

for df in my_df:
   df = pd.melt(df, id_vars=['A','B','C'], value_name = 'my_value')

for df in my_df:
   df = pd.pivot_table(df, values = 'my_value', index = ['A','B','C'], columns = ['my_column'])

任何帮助都会很棒。提前谢谢你

您需要将输出分配给新的 DataFrame 列表:

out = []
for df in my_df:
   df = pd.melt(df, id_vars=['A','B','C'], value_name = 'my_value')
   out.append(df)

列表理解中的相同想法:

out = [pd.melt(df, id_vars=['A','B','C'], value_name = 'my_value') for df in my_df]

如果需要覆盖列表中的原始值:

for i, df in enumerate(my_df):
   df = pd.melt(df, id_vars=['A','B','C'], value_name = 'my_value')
   my_df[i] = df

print (my_df)

如果需要覆盖变量df1, df2, df3:

df1, df2, df3 = [pd.melt(df, id_vars=['A','B','C'], value_name = 'my_value') for df in my_df]