鉴于此数据框:
import pandas as pd
df=pd.DataFrame({'Field':['a','b','a','b'],'Value':['aa','bb','cc','dd'],
'indexer':[0,0,1,1]})
df
Field Value indexer
0 a aa 0
1 b bb 0
2 a cc 1
3 b dd 1
我想生成这样的数据框:
indexer a b
0 aa bb
1 cc dd
当值字段为数字时,我已经看到了如何实现此目的的答案,但我似乎无法使用字符串数据。
我尝试过df.groupby('indexer'),但似乎无法显示它或将其放入数据帧。我找到了这些的答案,但它们假设浮点数或整数值。
提前致谢!
答案 0 :(得分:2)
您的真实数据与indexer
成对包含重复项存在问题,因此必须使用Field
之类的聚合函数,因为使用', '.join
s:
string
或者:
df = df.groupby(['indexer', 'Field'])['Value'].apply(', '.join).unstack()
print (df)
Field a b
indexer
0 aa bb
1 cc dd
答案 1 :(得分:0)