我有一個表,看起來像這樣:大熊貓:Dataframe.replace()的正則表達式
df_raw = pd.DataFrame(dict(A = pd.Series(['1.00','-1']), B = pd.Series(['1.0','-45.00','-'])))
A B
0 1.00 1.0
1 -1 -45.00
2 NaN -
我想換成「 - 」到「0.00」使用dataframe.replace(),但它的鬥爭,因爲的負值,'-1','-45.00'。
如何忽略負值並僅將' - '替換爲'0.00'?
我的代碼:
df_raw = df_raw.replace(['-','\*'], ['0.00','0.00'], regex=True).astype(np.float64)
錯誤代碼:
ValueError: invalid literal for float(): 0.0045.00
對不起的將不僅僅是'df_raw.replace( ' - ',0.00)'在這種情況下工作? – EdChum
令人驚訝的是,它確實如此,但爲什麼它不能像我那樣做呢? –
,因爲你的正則表達式爲所有'-'找到一個匹配項,如果你這樣做了,那麼它只會匹配負項:'df_raw.replace(['^ - $'],['0.00'],regex = True) ' – EdChum