我有一个包含如下元组列的数据框架。
import pandas as pd
d = {'col1': [('A', 0), ('A', 1), ('A', 2), ('B', 0), ('B', 1), ('B', 2)], 'col2': [1, 1, 1, 2, 2, 2]}
df = pd.DataFrame(data=d)
# Split the tuple to two cols and drop the tuple col
df[['b1', 'b2']] = pd.DataFrame(df['col1'].tolist(), index=df.index)
print(df)
col2 b1 b2
0 1 A 0
1 1 A 1
2 1 A 2
3 2 B 0
4 2 B 1
5 2 B 2
我想做的是以最有效的方式重新格式化这个数据框,并生成一个新的数据框,其中0,1,2是列,a, B是行名。所以我可以写入csv文件
0 1 2
A 1 1 1
B 2 2 2
你可以用rename_axis
来做pivot
out = df.pivot(index='b1',columns='b2',values='col2').
rename_axis(None,axis=1).rename_axis(None)
Out[101]:
0 1 2
A 1 1 1
B 2 2 2