将新的pandas.dataframe列设置为已过滤的其他列

时间:2016-07-05 13:08:49

标签: python pandas

我有一个pandas.Dataframe对象,格式如下:

Symb     Bid     Ask
ESU6     207000  207025
YMU6     12793   12797
ESU6     207025  207050
YMU6     12795   12797

但我想重新配置对象看起来像以下格式:

Bid.ESU6     Ask.ESU6     Bid.YMU6     Ask.YMU6
207000       207025       
                          12793        12797
207025       207050       
                          12795        12797

有没有一种简单的方法来重新配置数据而没有遍历每个元素的for循环?

提前非常感谢你!

1 个答案:

答案 0 :(得分:1)

您可以使用pivot_table

df1 = df.pivot_table(columns='Symb', values=['Bid','Ask'], index=df.index)
df1.sort_index(axis=1, level=1, inplace=True)
df1.columns = ['.'.join(col) for col in df1.columns]
df1.fillna('', inplace=True)
print (df1)
  Bid.ESU6 Ask.ESU6 Bid.YMU6 Ask.YMU6
0   207000   207025                  
1                      12793    12797
2   207025   207050                  
3                      12795    12797