使用loc替换值会产生错误

时间:2018-05-03 15:34:20

标签: python pandas dataframe

我的代码如下:

ex1 = sym('a')
ex2 = parse_expr('a')

当我运行它时,我收到错误"' str'没有属性' loc'"。好像它告诉我,我不能在数据帧上使用loc。我想要做的就是更换价值,所以如果有更简单的方法,我都是耳朵。

2 个答案:

答案 0 :(得分:1)

我建议使用df.replace

df = df.replace({'c_df':{'Korea, Rep.':'South Korea'}})

上面的代码仅在Korea, Rep.列中将South Korea替换为c_df。看一下df.replace documentation,它解释了我上面使用的嵌套字典语法:

  

嵌套词典,例如{'a':{'b':nan}},如下所示:在列'a'中查找值'b'并将其替换为nan。您也可以嵌套正则表达式。请注意,列名(嵌套字典中的顶级字典键)不能是正则表达式。

示例

# Original dataframe:
>>> df
          c_df whatever
0  Korea, Rep.     abcd
1            x     abcd
2  Korea, Rep.     abcd
3            y     abcd

# After df.replace:
>>> df
          c_df whatever
0  South Korea     abcd
1            x     abcd
2  South Korea     abcd
3            y     abcd

答案 1 :(得分:1)

只做

c_df.loc[c_df['Country'] == ('Korea, Rep.')] = 'South Korea'

而不是

c_df = c_df.loc[c_df['Country'] == ('Korea, Rep.')] = 'South Korea'