我有一个df(dfA),有6个国家的出生时预期寿命和每年gdp。与以下structure一起:
country year expectancy gdp difference
chile 2000 60 1bn NA
chile 2001 63 1.5bn 0.5bn
chile 2002 65 2.5bn 0.5bn
chile 2003 68 3.5bn 1.0bn
.
.
.
chile 2015 80 10bn 10bn
每一行代表一个国家从2000年到2015年每年的数据(gdp、预期等),涉及6个国家
我创建了一个新的数据框架来存储每个国家的重要总体变量,例如每个国家的GDP增量(2015年GDP减去2000年GDP)。新的df(dfB)看起来像this:
country startEndDelta (dummydata)
Chile x
China y
Germany z
Mexico a
USA b
Zimbabwe c
我想做的是在我的newdf中添加一个新列,显示每个国家哪一年的GDP增长最大
我已经能够计算这一年了,但我首先必须用一个国家的记录创建另一个数据框Here I do it the way I metioned before.
我希望这样做的方式类似于:
dfB['biggestDeltaYear'] = ?year with the biggest increase in GDP?
其中,这一行代码填充dfB中新列“biggestDeltaYear”的每一行
我有什么选择
非常感谢
您应该能够使用groupby实现这一点,并在Pandas中应用lambda操作。下面是我画的一个例子:
考虑以下数据:
首先,我们在各个国家/地区采用不同的操作:
然后我们可以根据最大值生成一个布尔列:
也可以使用以下方法获得实际年份值,而不是布尔值:
或者
嗯
还有一个选择:
也许您可以尝试使用pandas.DataFrame的groupby()方法
相关问题 更多 >
编程相关推荐