微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python – Pandas Dataframe将数据拼接成2列,并用逗号和整数表示数字

我目前遇到两个问题:

我的数据框架如下所示:

,male_female,no_of_students
0,24 : 76,"81,120"
1,33 : 67,"12,270"
2,50 : 50,"10,120"
3,42 : 58,"5,120"
4,12 : 88,"2,200"

我想要实现的是:

,male,female,24,76,81120
1,33,67,12270
2,50,10120
3,42,58,5120
4,12,88,2200

基本上我想将male_female转换为两列,将no_of_students转换为整数列.我尝试了很多东西,将no_of_students列转换为另一种带有.astype的类型.但似乎没有什么工作正常,我也无法找到一个聪明的方法来正确分割male_female列.

希望有人可以帮助我!

解决方法

对于按列分隔的新列,使用 str.splitpop,然后使用 strip尾随值,replace并在必要时转换为整数:

df[['male','female']] = df.pop('male_female').str.split(' : ',expand=True)
df['no_of_students'] = df['no_of_students'].str.strip('" ').str.replace(',','').astype(int)
df = df[['male','female','no_of_students']]

print (df)
  male female  no_of_students
0   24     76           81120
1   33     67           12270
2   50     50           10120
3   42     58            5120
4   12     88            2200

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐