[英]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.