如何根据多种条件更改熊猫数据框中的一个单元格?

时间:2020-10-10 20:08:46

标签: python pandas dataframe assign

我有一个庞大的数据框架,涵盖了30个国家的70年GDP增​​长。数据如下:

GDP    Country    Year
10     US         2000
10.2   US         2001
0      US         2002
10.2   US         2003
10.4   US         2004
10.4   US         2005

我已经进行了计算,想要用存储在名为0的变量中的浮点数替换第三行中的us_2000

我尝试使用

df.loc[(df.Country == "US") & (df.Year == 2002), "GDP"] = us_2000

但是它不起作用,并且我收到以下警告消息:

C:\Users\graha\anaconda3\lib\site-packages\IPython\core\interactiveshell.py:3331: SettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame

See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
  exec(code_obj, self.user_global_ns, self.user_ns)

数据是从API下载的,不幸的是,API使索引变得有些可怕,带有国家名称和日期时间。有没有一种方法可以根据其“国家/地区”和“年份”值重新分配一个值,而无需重置索引?

1 个答案:

答案 0 :(得分:0)

尝试:

df.loc[(df.Country == "US") & (df.Year == 2002)]["GDP"] = us_2000