我有以下数据框:
df = pd.DataFrame()
df['Name'] = ['A','B','C']
df['Value'] = ['2+0.5','1+0.2','2-0.06']
我想要做的是拆分值并将其分配给两个新列。 这意味着我想要的输出如下: “值”列中的元素将被拆分为两个,我将重复使用列中的符号。
非常感谢您的建议。
谢谢。
答案 0 :(得分:1)
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)
答案 1 :(得分:0)
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