我有一个非常简单的案例,由于某种原因,它给我带来了问题。
我正在组合多个数据帧。因此,我通常会有相同的键,但每个键值的注释不同。
KeyValue Comment
1235 This is okay
444 Problems here
1235 Investigate further
我试图消除键的重复,但通过将它们合并到一个comments字段来保留所有注释。我想要的输出:
KeyValue Comment
1235 This is okay | Investigate further
444 Problems here
我试过:
newdf = olddf.groupby('KeyValue')['Comment'].apply(lambda x: ' | '.join(x)).reset_index()
但当我这样做的时候,我会得到
"TypeError: sequence item 0: expected str instance, float found"
我在这里看到了与我类似的问题(这是我获得原始代码的地方(,但不确定为什么会出现这个错误或如何解决。如果有任何帮助,我们将不胜感激。
我将您的键值转换为字符串,它可以工作:
import pandas as pd
mydata = pd.DataFrame([['KeyValue','Comment'],
[1235,'This is okay'],
[444,'Problems here'],
[1235,'Investigate further']])
mydata.columns = mydata.iloc[0]
mydata = mydata[1:]
print(mydata)
newdf = mydata.groupby(str('KeyValue'))['Comment'].apply(lambda x: ' | '.join(x)).reset_index()
print(newdf)
0 KeyValue Comment
1 1235 This is okay
2 444 Problems here
3 1235 Investigate further
KeyValue Comment
0 444 Problems here
1 1235 This is okay | Investigate further