gpt4 book ai didi

python - 使用交叉表时对值进行排序和删除

转载 作者:行者123 更新时间:2023-12-02 01:19:43 26 4
gpt4 key购买 nike

所以我有一个 Pandas 类(class)的作业,但我无法思考如何正确地做到这一点。作业给了我这个巨大的数据文件,其中包含显示数据的各种列,它看起来像这样:

Document   Year Parties Question       Ministry
x1021.xml 1995 D66 What does... Ministry of Safety
x1022.xml 1995 CDA When do we... Ministry of Culture
x1023.xml 1995 PvdA When can we... Ministry of Agriculture

这种情况持续了数千行。第一个练习告诉我制作列的交叉表:“年”和“派对”,其中“年”是索引,“派对”是列。这一点也不难,只需要一行代码:

pd.crosstab(index=df['Year'], columns=df['Parties'])

但下一个问题让我想到:现在使用原始数据框,创建一个新的数据框,其中年份为索引,只有问最多问题的前 10 个缔约方是使用交叉表函数的列。

我知道我首先必须对数据帧进行排序,然后才能使用交叉表,但如果我使用其他任何东西,那么只是最基本的交叉表函数就会给我错误。我还知道前 10 名政党应该是唯一的,所以我猜测在某些时候我必须使用 unique 函数,但它只返回一个数组,在该数组中我无法再将年份连接到它们。向前跳过 4 个小时:我现在尝试使用 groupby 函数、sort_values 函数和 unique 函数,但似乎无法让它们正常工作。因此,为了让自己保持理智,我请求你们帮助我让它发挥作用,或者至少解释一下为什么我无法让它发挥作用。

最佳答案

如果我理解正确的话,您想要按多年来提出更多问题的前 10 位各方进行过滤,对吗?

如果是这样,您可以使用以下方法确定问题最多的前 10 个各方:

top10 = df.groupby('Parties')['Question'].count().nlargest(10).index

然后,您可以过滤数据框以仅包含以下各方:

df_top10 = df[df['Parties'].isin(top10)]

此时,您可以根据此过滤后的数据帧构建交叉表。

关于python - 使用交叉表时对值进行排序和删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59985973/

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