熊猫替换对我不起作用,下面是一个示例
df = pd.DataFrame({'Curve' : ['RTY-USDSwapZero','SX7E-EURSwapZero'], 'Values' : [1,1]})
我尝试过:
df.replace({'USDSwapZero':'USD','EURSwapZero' :'EUR'},inplace = True)
df.replace({'USDSwapZero':'USD','EURSwapZero' :'EUR'},inplace = True,regex = True)
df.Curve.replace({'USDSwapZero':'USD','EURSwapZero' :'EUR'},inplace = True,regex = True)
df = df.replace({'USDSwapZero':'USD','EURSwapZero' :'EUR'})
等等。所有组合
df.replace({'USDSwapZero':'USD','EURSwapZero' :'EUR'},inplace = True,regex = True)
print (df)
答案 0 :(得分:2)
为了让我的第二个解决方案工作顺利,有inplace=True
,所以没有分配:
df.replace({'USDSwapZero':'USD','EURSwapZero' :'EUR'},inplace = True,regex = True)
print (df)
Curve Values
0 RTY-USD 1
1 SX7E-EUR 1
但是似乎应该通过将SwapZero
替换为空字符串来简化解决方案:
df.replace('SwapZero','',inplace = True,regex = True)
print (df)
Curve Values
0 RTY-USD 1
1 SX7E-EUR 1
我还认为inplace
不是一个好习惯,请检查this和this,以便您可以分配回来:
df = df.replace({'USDSwapZero':'USD','EURSwapZero' :'EUR'}, regex = True)
#df = df.replace('SwapZero','', regex = True)
print (df)
Curve Values
0 RTY-USD 1
1 SX7E-EUR 1
答案 1 :(得分:0)
基于replace
的文档:
regex:布尔型或与
to_replace
相同的类型,默认为False 是否按常规解释to_replace
和/或value
表达式。如果这是True
,则to_replace
必须 串。或者,这可以是正则表达式或 在这种情况下,列表,字典或正则表达式数组to_replace
必须为None
。
如此
df = pd.DataFrame({'Curve' : ['RTY-USDSwapZero','SX7E-EURSwapZero'], 'Values' : [1,1]})
这两个选项在pandas = 0.24.2中对我有用
df.replace(['USDSwapZero', 'EURSwapZero'],
value=['USD', 'EUR'],
inplace = True, regex = True)
df.replace(None,
value=['USD', 'EUR'],
inplace = True,
regex = ['USDSwapZero', 'EURSwapZero'])