python - pandas 计算列中相同元素的数量,如果数量很小则删除

标签 python count pandas

我有两个问题

第一个是关于计数,第二个是关于删除

我的数据集如下所示

X = pd.read_table(dstore, sep=',', warn_bad_lines=True, error_bad_lines=True)
X.sort(['Chain_key'], ascending=[True], inplace=True)


       IRI_KEY  OU    EST_ACV       Market_Name  Open  Clsd  Chain_key
230    229030  GR   6.619999    SEATTLE/TACOMA  1123  9998          1
264    231588  GR   5.286999    SEATTLE/TACOMA   960  9998          1
291    233708  GR   5.556000    SEATTLE/TACOMA   607  9998          1 
1083   288392  GR   5.556000    SEATTLE/TACOMA   902  1400          1
167    223660  GR   5.825996    SEATTLE/TACOMA  1123  9998          1
1128   292476  GR  12.683000       LOS ANGELES  1048  9998          2
451    243939  GR  15.306000  WEST TEX/NEW MEX  1196  9998          2
980    281109  GR  15.800990       PORTLAND,OR   435  9998          2
945    278738  GR   9.685997       LOS ANGELES   435  9998          2
1473   656089  GR  14.738000       PHOENIX, AZ  1192  9998          2
1329   648019  GR  13.397990       PHOENIX, AZ   902  9998          3
999    283190  GR  19.213990        SACRAMENTO  1059  1450          3
207    227169  GR  18.780990  WEST TEX/NEW MEX  1075  9998          3
1026   285252  GR  31.476000  WEST TEX/NEW MEX   659  9998          4
1231   535552  GR  22.150990           SPOKANE  1145  9998          4
455    244163  GR  19.213990       PORTLAND,OR   435  1424          4
328    236100  GR  19.120000  WEST TEX/NEW MEX   493  9998          5
1228   535326  GR  15.429990       PHOENIX, AZ  1190  9998          6
436    242841  GR  20.472990       PORTLAND,OR  1285  9998          6

然后我想像这样计算 Chain_key 列中相同元素的数量

1:5 2:5 3:3 4:3 5:1 ...

如果他们的 chain_key 有少量相同元素,我该如何删除该行 例如删除小于 2 那么在上面的情况下 chain_key 5 应该被删除 因为他们只有 1 (5:1)

我尝试了 group by 或其他一些东西,但还没有捕获..

最佳答案

我认为您正在寻找尺寸:

In [11]: df.groupby('Chain_key').size()
Out[11]:
Chain_key
1            5
2            5
3            3
4            3
5            1
6            2
dtype: int64

要删除组中少于 2 的行,请使用过滤器:

In [12]: df.groupby('Chain_key').filter(lambda x: len(x) >= 2)

关于python - pandas 计算列中相同元素的数量,如果数量很小则删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22727809/

相关文章:

python - 将 pandas 数据帧插入 MySQL 表 - MySQLInterfaceError : Python type list cannot be converted

python - 如何过滤一个 Numpy 数组,使每个 X 值只有一个 Y 值

python - 当项目存储在 NAS 上时 PyCharm 重新索引

使用 (count_numbers(int [], int, int)) C 计算数组中数字出现的次数

sql - 查找满足条件但不四舍五入的行的百分比

python - 一列列表上的 Pandas groupby

Python : . csv 在 MS Excel 中无法正常打开

python - 数组中的矩形掩码

php - CodeIgniter - 按月订购我的 'posts'?

python - 如何属性解析具有用户特定日期格式的数据集