我有一个电子邮件数据框,其中给出了以下查询:
williams = emails[emails["employee"] == "kean-s"]
这将选择所有具有雇员kean-s的行。然后,我计算频率并打印最高频率。就是这样的:
williams["X-Folder"].value_counts()[:10]
这给出了这样的输出:
attachments 2026
california 682
heat wave 244
ferc 188
pr-crisis management 92
federal legislation 88
rto 78
india 75
california - working group 72
environmental issues 71
现在,我需要打印电子邮件中具有X_Folder列等于附件,加利福尼亚,加热方式等的所有行。我该如何处理?当我打印values [0]时,它只返回频率编号而不是对应的频率(尝试打印该频率编号是因为如果我能够遍历它,只会在数据框中放入一个条件)
答案 0 :(得分:1)
将Series.isin
与boolean indexing
一起用于索引值:
df = williams[williams["X-Folder"].isin(williams["X-Folder"].value_counts()[:10].index)]
或者:
df = williams[williams["X-Folder"].isin(williams["X-Folder"].value_counts().index[:10])]
如果需要过滤原始DataFrame
中的所有行(也包括不匹配kean-s
的行),请使用:
df1 = emails[emails["X-Folder"].isin(williams["X-Folder"].value_counts().index[:10])]