用列中的元组重新格式化Pandas数据框?



我有一个包含如下元组列的数据框架。

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

最新更新