我的数据集如下所示:
| 国家|年份|价值|
| - ------| - ------| - ------|
| 爱尔兰|二○一○年|九|
| 爱尔兰|二○一一年|十一|
| 爱尔兰|二〇一二年|十四|
| 爱尔兰|二〇一三年|十七|
| 爱尔兰|二〇一四年|二十个|
| 法国|二○一一年|十五|
| 法国|二〇一二年|十九|
| 法国|二〇一三年|二十一|
| 法国|二〇一四年|二十八|
| 德国|二零零八年|十七|
| 德国|二○ ○九年|二十个|
| 德国|二○一○年|十九|
| 德国|二○一一年|二十四|
| 德国|二〇一二年|二十七|
| 德国|二〇一三年|三十二|
我的目标是创建一个新的数据集,告诉我与最近的数据相比,给定国家第一年可用数据的增长百分比,大致如下所示:
| 国家|增长百分比|
| - ------| - ------|
| 爱尔兰|一百二十二|
| 法国|八十七|
| 德国|八十八|
本质上,我需要数据集中每个国家的代码,以定位年份的最小值和最大值,然后在值列中获取相应的值并计算增长百分比。
我可以手动完成,但是我的数据集中有很多国家,我正在寻找一种更优雅的方式来完成它。我正在尝试排除我的代码故障,但是我还没有太多的运气。
我的代码目前看起来如下所示:
df_1["Min_value"] = df.loc[df["Year"].min(),"Value"].iloc[0]
df_1["Max_value"] = df.loc[df["Year"].max(),"Value"].iloc[0]
df_1["% increase"] = ((df_1["Max_value"]-df_1["Min_value"])/df_1["Min_value"])*100
这将返回一个错误:
属性错误:"numpy.float64"对象没有属性"iloc"
除此之外,它还有一个问题,我不能想出一种方法,让代码在我的数据集中为每个国家单独运行,所以这是另一个挑战,我不完全确定如何解决。
我是否可以沿着这条路走下去,界定一个特定的职能,然后适用于每个国家?
1条答案
按热度按时间7kqas0il1#
您可以按
Country
分组,并聚合Year
和Value
的min/max
,然后计算Value
的min
和max
之间的percentage change。输出: