python - 如何获得 DataFrame 中列值的组合结果?

标签 python pandas dataframe

我在 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() 函数?

最佳答案

  • 我们将 groupbysort=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/

相关文章:

python - pandas系列/帧分位数函数采用多个概率?

python - 获取每组的滚动总和

pandas - 列值与列表中的值匹配

Python:如何将数据帧中的纬度/经度坐标传递或循环到函数中

Python - 指定要在命令行上使用文件中的哪个函数

python - py2exe 无法生成可执行文件

python - 根据条件分成不同的行

python - 来自 Pandas 的 groupby 是可交换的吗?

python - 如何按日期列表过滤日期和时间的数据框?

r - 如何使用另一个数据帧的信息更新数据帧列