在不使用str.split()的情况下将Pandas列拆分为多个列

问题描述 投票:0回答:3

Pandas有没有办法将列拆分成多列?我在数据框中有一列,其内容如下:

Test1   Test2   Salary
1   Akash   100_$
2   Akash   200_@
3   Yogi    300_%
4   Akash   400_$

我想把它分成:

Test1   Test2   Salary  Currency
1   Akash   100_$   $
2   Akash   200_@   @
3   Yogi    300_%   %
4   Akash   400_$   $
python pandas series
3个回答
2
投票

使用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_$        $

1
投票

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

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

1
投票

不使用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_$   $
© www.soinside.com 2019 - 2024. All rights reserved.