如何在DataFrame中获取列值的组合结果?

时间:2017-10-06 03:56:44

标签: python pandas dataframe

我在DataFrame中有以下数据。

<?php
}
?>
<tfoot>

我想将其转换为以下格式:

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

我怎样才能做到这一点?

注意: 我已经编辑了数据,现在一些城市名称是大写字母,有些还有前导空格。我们如何将strip()和lower()函数应用于它?

1 个答案:

答案 0 :(得分:2)

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