2016-06-29 5 views
3

I einen Datenrahmen mit einer Reihe von ganzen Zahlen in einer Spalte aufweisen; Irgendwann in der Spalte wird eine Zeichenfolge oder ein Buchstabe angezeigt. Ich muss diese Zeichenfolge oder einen Buchstaben oder eine ganze Zahl finden und dann alle Daten entfernen, die danach kommen.Findet das erste Vorkommen nichtganzzahligen in einer bestimmten Spalte eines Datenrahmens

Wie würde ich über diese gehen?

+0

Was 'nicht df.dtypes' Typ Ihre Spalte sagen ist? – chrisaycock

Antwort

4

, die den Trick tun sollten:

In [20]: df = pd.DataFrame({'x': [1, 2, 'a', 1, 2]}) 

In [21]: df 
Out[21]: 
    x 
0 1 
1 2 
2 a 
3 1 
4 2 

In [22]: df.loc[(~df.x.apply(np.isreal)).cumsum() == 0, :] 
Out[22]: 
    x 
0 1 
1 2 
+0

Danke, das macht genau das, was ich gesucht habe. – brandog

2

Try this:

df = pd.DataFrame({'x': [1, 2, 'a', 1, 2]}) 
df.iloc[:(df.x.apply(type) == str).idxmax()] 

    x 
0 1 
1 2 

enter image description here

Verwandte Themen