熊猫-使用groupby将列与字符串组合-TypeError消息问题

时间:2020-03-04 20:14:20

标签: python pandas pandas-groupby consolidation

我有一个非常简单的案例,由于某种原因,它给我带来了麻烦。

我正在合并多个数据帧。结果,我经常会有相同的键,但是每个键值的注释不同。

KeyValue       Comment
1235           This is okay
444            Problems here
1235           Investigate further

我正在尝试对密钥进行重复数据删除,但通过将所有注释合并到一个“注释”字段中来保留所有注释。我想要的输出:

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" 

我在这里(我得到原始代码的地方)看到了类似的问题要解决,但不确定为什么我会收到此错误或如何解决。任何帮助,将不胜感激。

1 个答案:

答案 0 :(得分:0)

我将您的键值转换为字符串,并且可以正常工作:

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