在df中改变格式的斗争并不确定原因

时间:2017-08-15 21:16:37

标签: pandas

我有一个初始列表,我转向df:

 ['Fuerte venta (0,00)*', 'Infraponderar (0,00)*', 'Neutral (14,00)*', 'Sobreponderar (2,00)*', 'Fuerte compra (11,00)*']

                  1
 0
Fuerte venta    (0,00)*
Infraponderar   (0,00)*
Neutral        (14,00)*
Sobreponderar   (2,00)*
Fuerte compra  (11,00)*

然后为了删除不受欢迎的子串' ( ' , ' ) ' and ' * ',我尝试了:

df1=df.replace({'(':'',')*':''},regex=True)

出现错误:

sre_constants.error: missing ), unterminated subpattern at position 0

然后我试了

df1=df.replace('(','').replace(')*','')

返回相同的初始输入。

所需的输出是:

                  1
 0
Fuerte venta    0,00
Infraponderar   0,00
Neutral         14,00
Sobreponderar   2,00
Fuerte compra  11,00

我认为问题是值的数据类型是array,这就是replace根本不起作用的原因。

有谁能帮我理解这个问题以及如何解决它?

1 个答案:

答案 0 :(得分:1)

我会将previous answer用rsplit更改为此

df = pd.DataFrame({'0': ['Fuerte venta (0,00)*', 'Infraponderar (0,00)*', 'Neutral (14,00)*', 'Sobreponderar (2,00)*', 'Fuerte compra (11,00)*']})

df['0'].str.extract('(.*)\s\((.*)\)', expand = True)

    0               1
0   Fuerte venta    0,00
1   Infraponderar   0,00
2   Neutral         14,00
3   Sobreponderar   2,00
4   Fuerte compra   11,00