我有一個資料框,顯示一天中每個小時(從 0 到 23 小時)附加多少次 ID。
假設它看起來像這樣:
ID hour
0 1 0
1 1 0
2 1 0
3 1 0
4 1 0
... ... ...
10115 456 23
10116 456 23
10117 456 23
10118 456 23
10119 456 23
10120 rows × 2 columns
我想查找一天中附加少于 12 次的 ID(因此一天中附加少于 12 小時)
我試過了:
df2.groupby("ID").hour.unique()
和輸出:
ID
1 [15, 20]
2 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,...
3 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,...
4 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,...
5 [12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]
...
452 [15]
453 [15]
454 [16]
455 [16]
456 [16]
Name: hour, Length: 2853, dtype: object
如果我的想法正確,它會向我顯示 ID 以串列形式出現的次數(以及在哪個小時內)。我如何參考所有這些長度小于 12 的串列?
uj5u.com熱心網友回復:
使用nunique代替unique:
>>> df2.groupby("ID")['hour'].nunique().loc[lambda x: x < 12].index
Int64Index([1, 452, 453, 454, 455, 456], dtype='int64', name='ID')
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/464389.html
上一篇:為什么我得到無效的語法?
下一篇:在熊貓中旋轉并保留列/行順序
