1
我試圖在熊貓數據框中進行字符串替換。需要循環單個列,所以它基本上是一個系列的替代品:熊貓系列中的部分字符串替換
In [105]: df = pd.DataFrame([['0 - abc', 1, 5], ['0 - abc - xyz', 2, 3]], columns=['col1','col2','col3'])
In [106]: df
Out[106]:
col1 col2 col3
0 0 - abc 1 5
1 0 - abc - xyz 2 3
In [107]: for col in df.columns:
...: df[col] = df[col].replace(to_replace='".*"|^0', value=df['col3'], inplace=False, regex=True)
...:
In [108]: df
Out[108]:
col1 col2 col3
0 5 1 5
1 3 2 3
代替上述DF的,我期待的結果:
In [110]: df_result
Out[110]:
col1 col2 col3
0 5 - abc 1 5
1 3 - abc - xyz 2 3
也就是說,在「0 - ABC ',只有開頭的'0'應該被替換爲'5'而不是整個字符串。
我在正則表達式中錯過了什麼?在熊貓中是否有替代方法來完成這種字符串替換?謝謝。
謝謝@COLDSPEED!是的,我的用例需要有'|' (或)條件在正則表達式。 –
@ D.prd當然。根據需要修改。但主要的解決方案是'.astype'。 –
是的,做@COLDSPEED,再次感謝你! –