我可以groupby在單個運算式中使用并優雅地檢查條件是否為真(例如,組包含給定值)嗎?
目前,我用于
df = pd.DataFrame([['1', 'A'], ['1', 'A'], ['1', 'B'], ['2', 'B']], columns=['col_1', 'col_2'])
apply()得到我想要的:
df.groupby('col_1').col_2.apply(lambda s: 'A' in s.values) # or other conditions
但這既不高效也不優雅。其他想法?
uj5u.com熱心網友回復:
首先比較col_2布爾掩碼的值,然后聚合GroupBy.any:
s = df.col_2.eq('A').groupby(df['col_1']).any()
print (s)
col_1
1 True
2 False
Name: col_2, dtype: bool
或創建幫助列new:
s = df.assign(new = df.col_2.eq('A')).groupby('col_1')['new'].any()
print (s)
col_1
1 True
2 False
Name: new, dtype: bool
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/515944.html
下一篇:從累積和計算15分鐘資料
