我有两个问题
第一个是关于计数,第二个是关于删除
我的数据集如下所示
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/