Ich habe ein Datenframe, das 472 Spalten hat. Von diesen 99 Spalten sind dxpoa1, dxpoa2, ..., dxpoa99. Ich möchte Zeilen des Datenrahmens herausfiltern, in denen die Werte der dxpoa-Spalten entweder nur 7 oder N oder BLANK sind. dxpoa's können viele Werte haben wie Y, W, E, 1, 7, N usw. Oder sie bleiben BLANK. Nur diejenigen Zeilen, in denen dxpoa nur entweder 7 oder N haben, sollten aus dem Datenrahmen herausgefiltert werden. Dataset ist riesig mit vielen hunderttausend Zeilen. Daher wird eine effiziente Methode geschätzt.Filter pandas Datenrahmen basierend auf Werten in mehreren Spalten
a b c dxpoa1 dxpoa2 dxpoa3 dxpoa4
0 0 A X W N X
1 Z W 2 7 7
2 7 W N W W 1 Z
3 1 7 E N N N N
4 Y 0 W N X 1
5 N X 1 E 1 Z 7
6 1 X 7 0 A W A
7 X X Z X N A 1
8 7 1 A N X Z N
9 N A Z N N N
10 A N Z 7 0 A E
11 E N A Z N N 1
12 E A 1 Z E E W
13 N W Z E X A 0
14 Y 1 A W A E X
Ich möchte Zeilennummer 1, 3, 9 aus Datarahmen entfernt.
Ich habe viele Möglichkeiten ausprobiert wie:
df_col = [list of dxpoa column names]
df1 = df[df_col].isin(["Y", "W", "1", "E"]).values
Es ist nicht ausfiltern.
Haben Sie Reihen entfernen möchten, die jede * der dxpoa Spalten * enthalten ' '7'' oder'' N'' oder wollen Sie um nur die Zeilen zu entfernen, für die * alle * dieser Spalten "7" oder "N" enthalten? – unutbu
Ich möchte nur die Zeilen entfernen, für die einige oder alle dieser Spalten '7' oder 'N' enthalten können. Wenn Zeilen eine Mischung aus 7, N, E, W usw. oder anders als 7, N haben, möchte ich diese Zeilen behalten. In der ersten Zeile habe ich "etwas" geschrieben, da es nicht notwendig ist, dass alle dxpoa-Spalten Werte haben. Viele Spalten sind auch Leerzeichen. Diese Spalten sind Platzhalter für Werte. In einigen Zeilen haben nur 1 oder 2 Werte, während in einigen alle Werte Werte haben. – Sanoj
Es ist besser, sich Leerzeichen als leere Strings vorzustellen, '' '' - ein Wert wie '' 7'' oder '' N''. Dann können Sie das Problem so ausdrücken, als würden Sie Zeilen entfernen, für die * alle * die Werte (in den dxpoa-Spalten) in '['7', 'N', '']' stehen. – unutbu