Ich habe eine CSV mit Zeilen wie folgt aussehen Datei:Daten munging in Pandas
ID,98.4,100M,55M,65M,75M,100M,75M,65M,100M,98M,100M,100M,92M,0#,0N#,
kann ich es lesen mit
#!/usr/bin/env python
import pandas as pd
import sys
filename = sys.argv[1]
df = pd.read_csv(filename)
eine bestimmte Spalte gegeben, ich möchte die Zeilen aufzuspalten durch ID und geben Sie dann den Mittelwert und die Standardabweichung für jede ID aus.
Mein erstes Problem ist, wie kann ich alle nichtnumerischen Teile von den Nummern wie "100M" und "0N #" entfernen, die jeweils 100 und 0 sein sollten.
Ich habe auch versucht, über den entsprechenden Header Looping und in Pandas DataFrame: remove unwanted parts from strings in a column
df[header].replace(regex=True,inplace=True,to_replace=r'\D',value=r'')
wie vorgeschlagen verwenden.
Jedoch ändert dies 98,4 in 984.
Mögliche Duplikat [Pandas Datenrahmen: Entfernen Sie unerwünschte Teile von Zeichenketten in einer Spalte] (http: // stackoverflow.com/questions/13682044/pandas-dataframe-remove-unwanted-parts-from-strings-in-a-column) – Evert
@Evert Eine Bearbeitung hinzugefügt, um zu zeigen, wie ich auch mit Dezimalstellen umgehen muss. – eleanora
Das Duplikat, das ich aufgelistet habe, schlägt vor, 'rstrip' zu verwenden, mit den Zeichen, die Sie entfernen möchten. Also ... 'rstrip ('MN #')' sollte gut für Ihre Eingabe arbeiten, mit dem Lambda vorgeschlagen in dem Duplikat (natürlich können Sie den 'lstrip' Teil weglassen). – Evert