.drop richtig anwenden
Verfasst: Donnerstag 21. Dezember 2023, 09:33
Hallo Miteinander,
Ich habe jetzt schon einige Anleitungen, Hilfestellungen und andere Googleeinträge durchforstet, aber mit meinen bisher begrenzten Kenntnissen von Python komme ich da auf keinen grünen Zweig.
Was ich möchte ist, alle Zeilen in denen in der Spalte Cell-ID ein str und kein int Wert ist zu löschen. Ich weiß das es im Dataframe mit dem drop Befehl gehen sollte. Ich scheitere aber daran die Indexliste dafür zu erstellen. Ich habe es derzeit über eine Schleife gelöst, die zwar keine Fehler ausgibt, aber auch die Zeilen nicht löscht. Was ist hier der richtige Ansatz/Was habe ich für einen Denkfehler?
Beispielhaft ein paar Zeilen aus der Spalte (bei allen Feldern die nicht nur aus Zahlen bestehen soll die Zeile gelöscht werden):
1328
1329
1330
XXXX.1001
XXXX.1002
XXXX.1003
Code:
df_As=pd.read_excel(r'lala.xlsm',sheet_name='Cell Assembly',skiprows=2, names=['Cell-ID', 'Stack1','Stack2'], usecols=(3,5,6))
i = 0
while i<len(df_As['Cell-ID']):
z = df_As['Cell-ID']
if type(z)==str:
Ind6 =df_As.loc[(df_As["Cell-ID"] == z)].index
Ind7 = int(Ind6[0])
df_As['Cell-ID'].drop(Ind7, axis=0, inplace=True)
i = i+1
Ich habe jetzt schon einige Anleitungen, Hilfestellungen und andere Googleeinträge durchforstet, aber mit meinen bisher begrenzten Kenntnissen von Python komme ich da auf keinen grünen Zweig.
Was ich möchte ist, alle Zeilen in denen in der Spalte Cell-ID ein str und kein int Wert ist zu löschen. Ich weiß das es im Dataframe mit dem drop Befehl gehen sollte. Ich scheitere aber daran die Indexliste dafür zu erstellen. Ich habe es derzeit über eine Schleife gelöst, die zwar keine Fehler ausgibt, aber auch die Zeilen nicht löscht. Was ist hier der richtige Ansatz/Was habe ich für einen Denkfehler?
Beispielhaft ein paar Zeilen aus der Spalte (bei allen Feldern die nicht nur aus Zahlen bestehen soll die Zeile gelöscht werden):
1328
1329
1330
XXXX.1001
XXXX.1002
XXXX.1003
Code:
df_As=pd.read_excel(r'lala.xlsm',sheet_name='Cell Assembly',skiprows=2, names=['Cell-ID', 'Stack1','Stack2'], usecols=(3,5,6))
i = 0
while i<len(df_As['Cell-ID']):
z = df_As['Cell-ID']
if type(z)==str:
Ind6 =df_As.loc[(df_As["Cell-ID"] == z)].index
Ind7 = int(Ind6[0])
df_As['Cell-ID'].drop(Ind7, axis=0, inplace=True)
i = i+1