Entfernen bestimmter Zeilen aus dem DataFrame in Pandas
Posted: 21 Aug 2025, 23:51
Ich habe einen großen .txt mit Daten in schlechten Formaten. Ich möchte einige Zeilen entfernen und den Rest von Daten in Schwimmzahlen konvertieren. Ich möchte Zeilen mit 'x' oder 'xx' entfernen, der Rest, den ich in Schwimmer konvertieren sollte, wie 4; 00.1 in 4.001 Die Datei sieht so aus wie dieses Beispiel:
oder irgendetwas anderes ändern? Vielen Dank für Ihren Rat
Code: Select all
0,1,10/09/2012,3:01,4;09.1,5,6,7,8,9,10,11
1,-0.581586,11/09/2012,-1:93,0;20.3,739705,,0.892921,5,,6,7
2,XX,10/09/2012,3:04,4;76.0,0.183095,-0.057214,-0.504856,NaN,0.183095,12
3,-0.256051,10/09/2012,9:65,1;54.9,483293,0.504967,0.074442,-1.716287,7,0.504967,0.504967
4,-0.728092,11/09/2012,0:78,1;53.4,232247,4.556,0.328062,1.382914,NaN,4.556,4
5,4,11/09/2012,NaN,NaN,6.0008,NaN,NaN,NaN,6.000800,6.000000,6.000800
6,X,11/09/2012,X,X,5,X,8,2,1,17.000000,33.000000
7,,11/09/2012,,,,,,6.000000,5.000000,2.000000,2.000000
8,4,11/09/2012,7:98,3;04.5,5,6,3,7.000000,3.000000,3.000000,2
9,6,11/09/2012,2:21,4;67.2,5,2,2,7,3,8.000000,4.000000
< /code>
Ich habe es zum DataFrame gelesen und wählen Zeilen < /p>
from pandas import *
from csv import *
fileName = '~/data.txt'
colName = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l']
df = DataFrame(read_csv(fileName, names=colName))
print df[df['b'].isin(['X','XX',None,'NaN'])].to_string()
< /code>
Eine Ausgabe aus der letzten letzten Zeile gibt mir nur: < /p>
>>> print df[df['b'].isin(['X','XX',None,'NaN'])].to_string()
b c d e f g h i j k l
a
2 XX 10/09/2012 3:04 4;76.0 0.183095 -0.057214 -0.504856 NaN 0.183095 12 NaN
6 X 11/09/2012 X X 5.000000 X 8.000000 2 1.000000 17 33
< /code>
nimmt keine Zeile 7 auf, und ich möchte nicht nur eine Spalte durchlaufen (die Originaldatei ist sehr groß).convert1 = lambda x : x.replace('.', '')
convert2 = lambda x : float(x.replace(';', '.'))
newNumber = convert2(convert1(df['e'][0]))
< /code>
Nach der Auswahl von Zeilen möchte ich sie von DF entfernen. Ich versuche df.pop () < /code>, aber es funktioniert nur für Spalten nicht für Zeilen. Ich versuche, Zeilen zu nennen, aber kein Glück. In diesem speziellen .txt sollte ich mit einem neuen df aus Zeilen [0,3,8,9] mit Spalte 'C' als Datumsformat, 'D' als Zeitformat und dem Rest als Float abschließen. Ich versuche es schon eine ganze Weile herauszufinden, weiß aber nicht, wo ich mich bewegen soll. Ist es in Pandas (wahrscheinlich sein) oder muss ich zu nDarray