Entfernen bestimmter Zeilen aus dem DataFrame in PandasPython

Python-Programme
Anonymous
 Entfernen bestimmter Zeilen aus dem DataFrame in Pandas

Post by Anonymous »

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:

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 
oder irgendetwas anderes ändern? Vielen Dank für Ihren Rat

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post