如何在不使用 for 循环的情况下转置和连接 pandas 数据帧?
这里是输入数据:
input_data = pandas.DataFrame({'a': ['fruit', 'fruit', 'fruit', 'food', 'food', 'food', 'food'],
'b': ['banana', '', 'apple', 'rice', '', 'yam', 'chicken']})
结果输出应该是这样的:
result = pandas.DataFrame({'a': ['fruit', 'food'],
'b': ['banana apple', 'rice yam chicken']})
这是我的 for 循环解决方案:
stuff_list = input_data.a.drop_duplicates().tolist()
result = pandas.DataFrame()
for s in stuff_list:
step1 = input_data[input_data.a == s]
step2 = ' '.join(step1.b.tolist())
step3 = pandas.DataFrame({'a':[s], 'b':[step2]})
result = result.append(step3)
print(result)
最佳答案
更像 agg
df.groupby('a',sort=False,as_index=False).agg(' '.join)
Out[539]:
a b
0 fruit banana apple
1 food rice yam chicken
关于python - 转置和连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56351417/