我有一个庞大的数据框架,涵盖了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使索引变得有些可怕,带有国家名称和日期时间。有没有一种方法可以根据其“国家/地区”和“年份”值重新分配一个值,而无需重置索引?
答案 0 :(得分:0)
尝试:
df.loc[(df.Country == "US") & (df.Year == 2002)]["GDP"] = us_2000