dataframe一列拆分为多列,一行拆分为多行

dataframe一列拆分为多列,一行拆分为多行

import pandas as pd
df = pd.DataFrame([['a1','a2', 'a3_a4'], ['b4', 'b5', 'b6_b7']],columns=['A','B','C'])
abc
0a1a2a3_a4
1b4b5b6_b7

1.一列拆分为多列

使用指定分隔符,将一列分隔为多列

import pandas as pd
df = pd.DataFrame([['a1','a2', 'a3_a4'], ['b4', 'b5', 'b6_b7']],columns=['A','B','C'])
df_1 = df['C'].str.split('_')
print(df_1)
df_2 =df['C'].str.split('_',expand=True)
print(df_2)
# 删除表格df的C列,然后和分列的结果df_2拼接
df_3 = df.drop(['C'],axis=1).join(df_2)
print(df_3)

str.split不使用expand参数,返回列表;使用expand参数,返回列表拆分为列

输出:

表格df_1

0[a3,a4]
1[b6,b7]

表格df_2

01
0a3a4
1b6b7

表格df_3

AB01
0a1a2a3a4
1b4b5b6b7

2.一行拆分为多行

import pandas as pd
df = pd.DataFrame([['a1','a2', 'a3_a4'], ['b4', 'b5', 'b6_b7']],columns=['A','B','C'])
df['C'] = df['C'].apply(lambda x:x.split('_')) #或者df['C'] = df['C'].map(lambda x:x.split('_'))
# explode方法直接实现列转行
# explode处理的主要对象为:列表,元组,numpy等类型
df = df.explode('C')
print(df)

输出:

ABC
0a1a2a3
0a1a2a4
1b4b5b6
1b4b5b7
  • 1
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值