熊猫更换不生产所需的输出

时间:2020-11-06 07:32:22

标签: python pandas

熊猫替换对我不起作用,下面是一个示例

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)

2 个答案:

答案 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不是一个好习惯,请检查thisthis,以便您可以分配回来:

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'])