Разделение столбца Pandas на несколько столбцов без использования str.split () - PullRequest
0 голосов
/ 17 марта 2019

Есть ли способ в 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 ]

2 голосов
/ 17 марта 2019

с использованием 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 голос
/ 17 марта 2019

Без использования 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_$   $
1 голос
/ 17 марта 2019

Если вам нужен только последний символ, который вы можете просто использовать:

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