我想知道現有的熊貓功能,目前爲止我可能找不到。基本上,我有一個數據框與各種列。我想根據某些colums的值選擇特定的行(僅供參考:我對列D的值感興趣,其中有幾個參數在A-C中描述)。在Python數據框中迭代地過濾數據
E.g.我想知道哪些行有A == 1 & B == 2 & C == 5?
df
A B C D
0 1 2 4 a
1 1 2 5 b
2 1 3 4 c
df_result
1 1 2 5 b
到目前爲止,我已經能夠基本減少這樣的:
import pandas as pd
df = pd.DataFrame({'A': [1,1,1],
'B': [2,2,3],
'C': [4,5,4],
'D': ['a', 'b', 'c']})
df_A = df[df['A'] == 1]
df_B = df_A[df_A['B'] == 2]
df_C = df_B[df_B['C'] == 5]
要這樣:
parameter = [['A', 1],
['B', 2],
['C', 5]]
df_filtered = df
for x, y in parameter:
df_filtered = df_filtered[df_filtered[x] == y]
其產生相同的結果。但我想知道是否有另一種方式?也許沒有循環在一行?
您可以在沒有使用的情況下將您的條件複製出來[df ['A'] == 1)&(df ['B'] == 2)&(df ['C'] == 5)]''一個循環 – EdChum
但是如果我事先不知道我的列是如何調用的以及我希望它們具有哪些值? – fukiburi
你是什麼意思?你必須在某個點上有一些想法來比較哪些列和值?您可以輕鬆構建條件 – EdChum