簡體   English   中英

根據 numpy 數組中的列值獲取行號

[英]Get row numbers based on column values from numpy array

我是 numpy 的新手,需要一些幫助來解決我的問題。 我使用 dtypes 從二進制文件中讀取記錄,然后選擇 3 列

df = pd.DataFrame(np.array([(124,90,5),(125,90,5),(126,90,5),(127,90,0),(128,91,5),(129,91,5),(130,91,5),(131,91,0)]), columns =  ['atype','btype','ctype'] )

這使

   atype    btype   ctype
0    124       90       5
1    125       90       5
2    126       90       5
3    127       90       0
4    128       91       5
5    129       91       5
6    130       91       5
7    131       91       0

我現在對“atype”不感興趣。 但我想要的是當 (x,90,5) 出現在第二和第三列時的行號 (x,90,0) 出現在第二和第三列當 (x,91,5) 出現在第二和第三列和(x,91,0) 出現在第二和第三列等

有 7 個變量,如 90、91、92、93、94、95、96,相應地,第 3 列中的值為 5 或 0。

條目數為 100 萬。 那么有沒有辦法在沒有 for 循環的情況下找出這些。

使用熊貓,您可以嘗試以下操作。

df[(df['btype'].between(90, 96)) & (df['ctype'].isin([0, 5]))]

用你的例子。 如果某些值發生變化,例如df

   atype    btype   ctype
0    124       90       5
1    125       90       5
2    126        0       5
3    127       90     100
4    128       91       5
5    129        0       5
6    130       91       5
7    131       91       0

然后使用上面的解決方案,返回以下內容。

   atype    btype   ctype
0    124       90       5
1    125       90       5
4    128       91       5
6    130       91       5
7    131       91       0

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM