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

时间:2019-03-17 09:57:34

标签: python pandas series

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

3 个答案:

答案 0 :(得分: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 :(得分:1)

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

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

答案 2 :(得分: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_$   $