python pandas合并单元格_python pandas拆分单元格

本文介绍了如何在Python的pandas库中拆分和合并单元格。通过示例展示了如何使用`str.split()`和`merge()`方法将name列拆分为name和grade两列,并提供了两种不同的实现方案。
摘要由CSDN通过智能技术生成

python pandas拆分单元格​mp.weixin.qq.com

拆分单元格是excel中经常遇到的内容之一。那么在pandas中如何实现呢?

例如有如下数据:

>>> import pandas as pd

>>> import numpy as np

>>> df=pd.read_excel(r'D:/myExcel/1.xlsx')

>>> df

name score

0 bob_B 45

1 jiken_A 67

我们需要将name列拆分为name和grade两列

下面看一下实践

方案一:

# 此处应注意,split拆分时,不指定expand参数,则此时

# 会拆分为['bob', 'B']类似的列表。之后调用get方法即可,

# 获取指定的值

>>> df['grade']=df['name'].str.split('_').str.get(1)

>>> df

name score grade

0 bob_B 45 B

1 jiken_A 67 A

>>> df['name']=df['name'].str.split('_').str.get(0)

>>> df

name score grade

0 bob 45 B

1 jiken 67 A

方案二:

使用split拆分之后,调用merge方法

此种模式适合拆分的列数较多,又全都需要

# 拆分之后成为dataFrame

>>> df1=df['name'].str.split('_', expand=True)

>>> df1

0 1

0 bob B

1 jiken A

# 合并,注意此处使用的是index合并

>>> df = df.merge(df1, how='inner', left_index=True, right_index=True)

>>> df

name score 0 1

0 bob_B 45 bob B

1 jiken_A 67 jiken A

# 修改列名等使其符合原顺序

>>> df['name'] = df[0]

>>> df

name score 0 1

0 bob 45 bob B

1 jiken 67 jiken A

>>> del df[0]

>>> df

name score 1

0 bob 45 B

1 jiken 67 A

>>> df = df.rename(columns={1:'grade'})

>>> df

name score grade

0 bob 45 B

1 jiken 67 A

哈哈,以上就是python小工具关于pandas拆分单元格的介绍,欢迎大家关注:python小工具。一起学习python和pandas

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值