下面的資料框有時間序列資料
| datetime | mc | quality | v0 | v1 | v2 | v5 | v6 | v7 | v8 | v9 | v10 |
|-------------------------|----|---------|----|----|----|----|----|------|----|----|-----|
| 2021-12-27 14:00:56.420 | L2 | 192 | 1 | 0 | 0 | 0 | 0 | 5515 | 0 | 0 | 0 |
| 2021-12-27 14:01:25.267 | L2 | 192 | 1 | 0 | 0 | 0 | 0 | 5507 | 0 | 0 | 0 |
| 2021-12-27 14:01:54.113 | L2 | 192 | 1 | 0 | 0 | 0 | 0 | 5524 | 0 | 0 | 0 |
| 2021-12-27 14:02:22.897 | L2 | 192 | 1 | 5 | 6 | 1 | 0 | 5513 | 0 | 0 | 0 |
| 2021-12-27 14:02:51.747 | L2 | 192 | 1 | 0 | 0 | 0 | 0 | 5455 | 0 | 0 | 0 |
| 2021-12-27 14:03:51.743 | L2 | 192 | 1 | 0 | 0 | 0 | 0 | 5522 | 7 | 3 | 9 |
| 2021-12-27 14:04:51.743 | L2 | 192 | 1 | 4 | 0 | 0 | 0 | 5522 | 7 | 3 | 9 |
要求:我需要選擇 v1 或 v9 不等于“0”的行
| datetime | mc | quality | v0 | v1 | v2 | v5 | v6 | v7 | v8 | v9 | v10 |
|-------------------------|----|---------|----|----|----|----|----|------|----|----|-----|
| 2021-12-27 14:02:22.897 | L2 | 192 | 1 | 5 | 6 | 1 | 0 | 5513 | 0 | 0 | 0 |
| 2021-12-27 14:03:51.743 | L2 | 192 | 1 | 0 | 0 | 0 | 0 | 5522 | 7 | 3 | 9 |
| 2021-12-27 14:04:51.743 | L2 | 192 | 1 | 4 | 0 | 0 | 0 | 5522 | 7 | 3 | 9 |
試煉:
df = df[df.v1 != 0]
如果我單獨選擇它的作業原理
df = df[(df.v1 != 0) & (df.v9 != 0)]
但是如果我設定條件它不起作用,我會得到空的資料框。
想知道有效的方法
uj5u.com熱心網友回復:
使用|按位OR:
df1 = df[(df.v1 != 0) | (df.v9 != 0)]
print (df1)
datetime mc quality v0 v1 v2 v5 v6 v7 v8 v9 v10
3 2021-12-27 14:02:22.897 L2 192 1 5 6 1 0 5513 0 0 0
5 2021-12-27 14:03:51.743 L2 192 1 0 0 0 0 5522 7 3 9
6 2021-12-27 14:04:51.743 L2 192 1 4 0 0 0 5522 7 3 9
或者DataFrame.any如果True在布爾資料幀中至少有一列,則使用 get 行測驗兩列:
df1 = df[(df[['v1','v9']] != 0).any(axis=1)]
print (df1)
datetime mc quality v0 v1 v2 v5 v6 v7 v8 v9 v10
3 2021-12-27 14:02:22.897 L2 192 1 5 6 1 0 5513 0 0 0
5 2021-12-27 14:03:51.743 L2 192 1 0 0 0 0 5522 7 3 9
6 2021-12-27 14:04:51.743 L2 192 1 4 0 0 0 5522 7 3 9
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/394636.html
上一篇:在串列中拆分這些字串
