如果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()之类的东西来将上述代码扩展到更复杂的数据。在