为了账号安全,请及时绑定邮箱和手机立即绑定

不使用 str.split() 将 Pandas 列拆分为多列

不使用 str.split() 将 Pandas 列拆分为多列

鸿蒙传说 2021-12-08 10:31:56
Pandas 中有没有办法将一列拆分为多列?我在数据框中有一列,其中的内容如下:Test1   Test2   Salary1   Akash   100_$2   Akash   200_@3   Yogi    300_%4   Akash   400_$我想把它分成:Test1   Test2   Salary  Currency1   Akash   100_$   $2   Akash   200_@   @3   Yogi    300_%   %4   Akash   400_$   $
查看完整描述

3 回答

?
芜湖不芜

TA贡献1796条经验 获得超7个赞

使用 s.str.extract


df['Currency']=df.Salary.str.extract('(\W)')

#or df['Currency']=df.Salary.str.split("_").str[1]

\W --> 任何不是字母、数字或下划线字符的字符。


print(df)


   Test1  Test2 Salary Currency

0      1  Akash  100_$        $

1      2  Akash  200_@        @

2      3   Yogi  300_%        %

3      4  Akash  400_$        $


查看完整回答
反对 回复 2021-12-08
?
明月笑刀无情

TA贡献1828条经验 获得超4个赞

如果你只想要最后一个字符,你可以使用:

df['Currency'] = df.Salary.str[-1]


查看完整回答
反对 回复 2021-12-08
?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

不使用str.split尝试以下。


df['Currency']=df.Salary.str.replace(".*_", "")

df

Test1   Test2   Salary  Currency

0   1   Akash   100_$   $

1   2   Akash   200_@   @

2   3   Yogi    300_%   %

3   4   Akash   400_$   $

或(如果有人想使用str.split:


您能否尝试以下操作,在此处使用str.split。


df['Currency']=df.Salary.str.split('_').str[1]

打印df输出如下。


Test1   Test2   Salary  Currency

0   1   Akash   100_$   $

1   2   Akash   200_@   @

2   3   Yogi    300_%   %

3   4   Akash   400_$   $


查看完整回答
反对 回复 2021-12-08
  • 3 回答
  • 0 关注
  • 310 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信