小编典典

基于相同的列值合并行(float type)

all

我有一个如下所示的数据集:

   id    name  phone  diagnosis
0   1  archie  12345    healthy
1   2   betty  23456       dead
2   3   clara  34567        NaN
3   3   clara  34567     kidney
4   4   diana  45678     cancer

我想合并重复的行并有一个如下所示的表:

   id    name  phone    diagnosis
0   1  archie  12345      healthy
1   2   betty  23456         dead
2   3   clara  34567  NaN, kidney
3   4   diana  45678       cancer

简而言之,我希望将诊断列中的条目放在一起,以便进行概览。我尝试运行以下命令,但它抛出了一个错误,指出需要一个字符串,但找到了一个浮点数。

data = data.groupby(['id','name','phone'])['diagnosis'].apply(', '.join).reset_index()

任何人都知道如何合并行?


阅读 68

收藏
2022-08-29

共1个答案

小编典典

这是因为NaN价值观。而且您不能真正将字符串与NaN预期的字符串连接起来。另一种方法是用字符串’NaN’填充nans:

data.fillna('NaN', inplace=True)
data.groupby(['id', 'name', 'phone']).diagnosis.apply(', '.join)
2022-08-29