Pandas:按类别过滤数据框

Posted

技术标签:

【中文标题】Pandas:按类别过滤数据框【英文标题】:Pandas: filter data frame by category 【发布时间】:2019-03-25 13:09:11 【问题描述】:

我有一个如下数据集:

X, Y
yes, 1
No, 2
Yes, 3
Yes, 4
No, 2
No, 1
Yes, 0
No, 4
No, 4
No, 5

我想从中得到以下输出:

X:  Yes, No
y: [1, 3, 4, 0], [2, 2, 1, 4, 4, 5]

如何使用 Python 实现?

编辑:我是熊猫库的新手,是我的数据科学项目的一部分。我如何使用熊猫字典来实现这一点。有人可以用我提供的数据集举例吗?

【问题讨论】:

到目前为止你有什么尝试? Convert a Pandas DataFrame to a dictionary的可能重复 @Roul,它可以通过带有列表理解的 pandas groupby 来实现,请参阅下面的答案.. @Roul,很高兴它对你有用 :) 学习愉快 @cryptonome:如果您没有时间正确阅读问题或懒得回答。请不要降级它。我的问题与已经回答的帖子完全不同。 【参考方案1】:

您可以使用带有列表理解的 pandas groupby 方法,该方法将执行如下所示的工作:

>>> df
     X  Y
0  Yes  1
1   No  2
2  Yes  3
3  Yes  4
4   No  2
5   No  1
6  Yes  0
7   No  4
8   No  4
9   No  5

>>> k: v["Y"].tolist() for k,v in df.groupby("X")
'No': [2, 2, 1, 4, 4, 5], 'Yes': [1, 3, 4, 0]

【讨论】:

以上是关于Pandas:按类别过滤数据框的主要内容,如果未能解决你的问题,请参考以下文章

Pandas 按功能过滤数据帧行

Pandas Pivot Table:按条件过滤时出错

如何按字符串过滤熊猫数据框?

将移动平均列添加到每个索引类别变量的数据框

如何按月份和年份输入过滤具有日期时间索引的数据框?熊猫

按列表中的值过滤pandas DataFrame [重复]