我在 DataFrame 中有以下数据。
city age
mumbai 12 33 5 55
delhi 24 56 78 23 43 55 67
kal 12 43 55 78 34
mumbai 14 56 78 99 # Have a leading space
MUMbai 34 59 # Have Capitol letters
kal 11
我想将其转换为以下格式:
city age
mumbai 12 33 5 55 14 56 78 99 34 59
delhi 24 56 78 23 43 55 67
kal 12 43 55 78 34 11
我怎样才能实现这个目标?
注意: 我已经编辑了数据,现在有些城市名称是大写字母,有些是前导空格。我们如何对其应用 strip() 和 lower() 函数?
最佳答案
- 我们将
groupby
与sort=False
结合使用,以确保我们按照城市首次出现的顺序显示城市。 - 我们使用
' '.join
将字符串连接在一起。 - 最后,我们
reset_index
将已放入索引中的城市值获取到正确的数据帧中。
df.groupby('city', sort=False).age.apply(' '.join).reset_index()
city age
0 mumbai 12 33 5 55 14 56 78 99 34 59
1 delhi 24 56 78 23 43 55 67
2 kal 12 43 55 78 34 11
编辑响应
df.age.str.strip().groupby(
df.city.str.strip().str.lower(),
sort=False
).apply(' '.join).reset_index()
city age
0 mumbai 12 33 5 55 14 56 78 99 34 59
1 delhi 24 56 78 23 43 55 67
2 kal 12 43 55 78 34 11
关于python - 如何获得 DataFrame 中列值的组合结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46598027/