我有包含如下文本数据的数据框,
name | address | number
1 Bob bob No.56
2 @gmail.com
3 Carly carly@world.com No.90
4 Gorge greg@yahoo
5 .com
6 No.100
并想把它做成这个框架。
name | address | number
1 Bob bob@gmail.com No.56
2 Carly carly@world.com No.90
3 Gorge greg@yahoo.com No.100
我正在使用 pandas 读取文件,但不知道如何使用合并或连接。
最佳答案
如果 name
列包含唯一值,
print df
name address number
0 Bob bob No.56
1 NaN @gmail.com NaN
2 Carly carly@world.com No.90
3 Gorge greg@yahoo NaN
4 NaN .com NaN
5 NaN NaN No.100
df['name'] = df['name'].ffill()
print df.fillna('').groupby(['name'], as_index=False).sum()
name address number
0 Bob bob@gmail.com No.56
1 Carly carly@world.com No.90
2 Gorge greg@yahoo.com No.100
您可能需要ffill()
、bfill()
、[::-1]
、.groupby('name ').apply(lambda x: ' '.join(x['address']))
, strip()
, lstrip()
, rstrip()
、replace()
之类的东西将上面的代码扩展到更复杂的数据。
关于python pandas 将两行或多行文本合并为一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42240022/