pd.pivot() 或 pd.pivot_table() 我做错了什么
What am i doing wrong with pd.pivot() or pd.pivot_table()
我有一个风格的数据框:
item1 item2 item3
idx1 val1 val1 val1
idx2 val2 val2 val2
idx3 val3 val3 val3
idx4 val4 val4 val4
idx5 val5 val5 val5
我正在尝试调换它,使其看起来像这样:
idx1 idx2 idx3 idx4 idx5
item1 val1 val2 val3 val4 val5
item2 val1 val2 val3 val4 val5
item3 val1 val2 val3 val4 val5
本质上,我希望索引成为列,而列成为索引。但是,当我尝试执行 df = pivot_table(df, index=df.columns, columns=df.index)
之类的操作时,我收到一条错误消息,提示 Grouper and axis must be same length
我不确定如何交换它们。如果我做错了什么,请提供任何帮助。
您可以通过转置数据帧来实现此目的,方法是参考其转置属性 (df.T
) 或使用其转置方法 (df.transpose()
):
>>> df
item1 item2 item3
idx1 val1 val1 val1
idx2 val2 val2 val2
idx3 val3 val3 val3
idx4 val4 val4 val4
idx5 val5 val5 val5
>>> df = df.T
>>> df
idx1 idx2 idx3 idx4 idx5
item1 val1 val2 val3 val4 val5
item2 val1 val2 val3 val4 val5
item3 val1 val2 val3 val4 val5
我有一个风格的数据框:
item1 item2 item3
idx1 val1 val1 val1
idx2 val2 val2 val2
idx3 val3 val3 val3
idx4 val4 val4 val4
idx5 val5 val5 val5
我正在尝试调换它,使其看起来像这样:
idx1 idx2 idx3 idx4 idx5
item1 val1 val2 val3 val4 val5
item2 val1 val2 val3 val4 val5
item3 val1 val2 val3 val4 val5
本质上,我希望索引成为列,而列成为索引。但是,当我尝试执行 df = pivot_table(df, index=df.columns, columns=df.index)
之类的操作时,我收到一条错误消息,提示 Grouper and axis must be same length
我不确定如何交换它们。如果我做错了什么,请提供任何帮助。
您可以通过转置数据帧来实现此目的,方法是参考其转置属性 (df.T
) 或使用其转置方法 (df.transpose()
):
>>> df
item1 item2 item3
idx1 val1 val1 val1
idx2 val2 val2 val2
idx3 val3 val3 val3
idx4 val4 val4 val4
idx5 val5 val5 val5
>>> df = df.T
>>> df
idx1 idx2 idx3 idx4 idx5
item1 val1 val2 val3 val4 val5
item2 val1 val2 val3 val4 val5
item3 val1 val2 val3 val4 val5