gpt4 book ai didi

python - 如何比较数据框中同一列的数据(Pandas)

转载 作者:行者123 更新时间:2023-12-03 16:10:17 25 4
gpt4 key购买 nike

我有一个 Pandas 的数据框,如下所示:
Countries dataframe
而且我想获得 2007 年 PIB 低于 2002 年的国家/地区,但我无法仅使用 Pandas 内置方法而不使用 python 迭代或类似方法编写代码来执行此操作。
我得到的最多的是以下几行:

df[df[df.year == 2007].PIB < df[df.year == 2002].PIB].country
但我收到以下错误:
ValueError: Can only compare identically-labeled Series objects
直到现在我只使用 Pandas 来过滤来自不同列的数据,但我不知道如何比较来自同一列的数据,在这种情况下是年份。
欢迎任何支持。

最佳答案

我的策略是使用pivot_table。假设没有两行具有相同的 ('country','year') 对。有了这个假设,aggfunc=np.sum代表唯一PIB值(value)。

table = pd.pivot_table(df, values='PIB', index=['country'],
columns=['year'], aggfunc=np.sum)[[2002,2007]]
list(table[table[2002] > table[2007]].index)
数据透视表如下所示:
The pivot_table looks like this

关于python - 如何比较数据框中同一列的数据(Pandas),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64149670/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com