加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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

发布时间:2020-12-20 11:05:21 所属栏目:Python 来源:网络整理
导读:我目前遇到两个问题: 我的数据框架如下所示: ,male_female,no_of_students0,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,811201,33,67,122702,50,101203,42,58,51204,1
我目前遇到两个问题:

我的数据框架如下所示:

,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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读