我有一个初始列表,我转向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
根本不起作用的原因。
有谁能帮我理解这个问题以及如何解决它?
答案 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