我有一个连接的数据框,列为 b、c、d,索引值为 0、1、2、0、1、2。 索引值重复,因为它是串联的。
b c d
0 x bh sj
1 y ss as
2 z ws ad
0 x sf ak
1 y ks kq
2 z sl la
我希望它是这样的。我正在尝试比较这些值及其一个大数据集。 我已经尝试了很多,但无法以这种方式拆分数据帧。有人可以帮我吗?
b c d e f
0 x bh sj sf ak
1 y ss as ks kq
2 z ws ad sl la
这是创建数据框的代码
cols1 = ['b', 'c', 'd']
df1 = pd.DataFrame(data=[['x','bh','sj'],['y','ss','as'],['z','ws','ad'],['x','sf','ak'],['y','ks','kq'],['z','sl','la']], columns=cols1, index=['0','1','2','0','1','2'])
df1.head()
答案 0 :(得分:0)
你可以这样做:
In [1414]: g = df1.groupby(df1.index).cumcount().add(1)
In [1419]: df = df1.set_index(['b', g]).unstack(fill_value=0).sort_index(axis=1, level=1)
In [1422]: df.columns = ["{}{}".format(a, b) for a, b in df.columns]
In [1424]: df = df.reset_index()
In [1425]: df
Out[1425]:
b c1 d1 c2 d2
0 x bh sj sf ak
1 y ss as ks kq
2 z ws ad sl la