拆分字符串值以在熊猫中创建两个新列

时间:2018-10-10 03:07:56

标签: python pandas dataframe split

我有以下数据框:

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 :(得分: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