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]
我有几个结构相同的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]