разделение строкового значения для создания двух новых столбцов в пандах - PullRequest
0 голосов
/ 10 октября 2018

У меня есть следующий фрейм данных:

df = pd.DataFrame()
df['Name'] = ['A','B','C']
df['Value'] = ['2+0.5','1+0.2','2-0.06']

Я хотел разделить значение и назначить два новых столбца.Это означает, что мой желаемый результат будет следующим: Элемент в столбце значений будет разбит на два, и я снова буду использовать знак в столбцах.

Я очень благодарен за ваш совет.

Спасибо.

enter image description here

Ответы [ 2 ]

0 голосов
/ 10 октября 2018
import pandas as pd
df = pd.DataFrame()
df['Name'] = ['A','B','C']
df['Value'] = ['2+0.5','1+0.2','2-0.06']
df[['value1','value2']]=df.Value.str.split('[-+]+',expand=True)
contain_symbol = df.Value.str.contains('-',regex=False)
df.loc[contain_symbol,"value2"] = -df.loc[contain_symbol,"value2"].astype(float)
0 голосов
/ 10 октября 2018

IIUC

newdf=df.Value.str.split('([-+])+',expand=True)
newdf[2]=newdf[1].map({'+':1,'-':-1})*newdf[2].astype(float)
df[['value1','value2']]=newdf[[0,2]]
df
Out[30]: 
  Name   Value value1  value2
0    A   2+0.5      2    0.50
1    B   1+0.2      1    0.20
2    C  2-0.06      2   -0.06
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...