我嘗試使用掩碼從我的groupby對象中進行選擇,但出現無法解析的錯誤。熊貓:使用時間序列作爲掩模進行選擇
首先,我按GROUPID
df_grouped = df.groupby('groupid')
然後,我計算出的STD,最小值和最大值從每個組中我選擇的口罩使用。
df_grouped_std = df_grouped.std()
df_grouped_min = df_grouped.min()
df_grouped_max = df_grouped.max()
然後我在不同的參數上創建兩個遮罩。
s1 = df_grouped_std['distance']<0.05
s2 = (df_grouped_max.speed- df_grouped_min.speed) < 10
最後我結合了口罩。
sTot = s1&s2
這提供了以下錯誤/堆棧跟蹤:
Traceback (most recent call last):
File "<ipython-input-198-b0df7aa8bb76>", line 1, in <module>
selection = df_grouped[sTot.values]
File "C:\Anaconda\lib\site-packages\pandas\core\groupby.py", line 3155, in __getitem__
% str(bad_keys)[1:-1])
KeyError: 'Columns not found: False, True'
後來我想用面膜來選擇。
selection = df_grouped[sTot]
我看到,S1,S2和STOT是時間序列,也許這就是爲什麼我不能用它們來選擇,但我不能弄清楚爲什麼會。我在這裏錯過了什麼?
數據例如:
print(s1.head())
print(s2.head())
print(sTot.head())
groupid
941 True
942 True
1721 True
1722 True
2201 True
Name: distance, dtype: bool
groupid
941 True
942 True
1721 False
1722 True
2201 False
Name: speed, dtype: bool
groupid
941 True
942 True
1721 False
1722 True
2201 False
dtype: bool
你能輸出s1和s2的頭嗎?執行'print(s1.head())'和'print(s2.head())'並複製粘貼這裏的輸出 –