Pandas: Lesen von Excel mit den verbundenen Zellen
Habe ich Excel-Dateien mit mehreren Blättern, jedes von denen sieht ein wenig so aus (aber viel länger):
Sample CD4 CD8
Day 1 8311 17.3 6.44
8312 13.6 3.50
8321 19.8 5.88
8322 13.5 4.09
Day 2 8311 16.0 4.92
8312 5.67 2.28
8321 13.0 4.34
8322 10.6 1.95
Die erste Spalte ist eigentlich vier Zellen zusammengeführt vertikal.
Wenn ich das hier lese mit den pandas.read_excel, bekomme ich einen DataFrame, der wie folgt aussieht:
Sample CD4 CD8
Day 1 8311 17.30 6.44
NaN 8312 13.60 3.50
NaN 8321 19.80 5.88
NaN 8322 13.50 4.09
Day 2 8311 16.00 4.92
NaN 8312 5.67 2.28
NaN 8321 13.00 4.34
NaN 8322 10.60 1.95
Wie kann ich entweder Pandas zu verstehen, verbundene Zellen, oder schnell und einfach entfernen Sie die NaN und Gruppe, indem Sie den entsprechenden Wert? (Ein Ansatz wäre es, den index zurücksetzen, Schritt für Schritt durch finden der Werte und NaNs ersetzen mit Werten, übergeben Sie in der Liste der Tage, dann legen Sie den index für die Spalte. Aber wie es scheint, sollte es einen einfacheren Ansatz.)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnten Sie die Serie.fillna - Methode Vorwort-füllen Sie die NaN-Werte:
Beispielsweise
fillna
- Methode hat eineaxis
parameter, der steuert die Richtung, gefüllt zu werden. Füllen Sie alle NaNs in einem DataFrame row-wise, Sie könnte verwendendf = df.fillna(method='ffill', axis=1)
. Füllen Sie nur ausgewählte Zeilen, verwenden Siedf.loc
oderdf.iloc
. Zum Beispieldf.loc[mask] = df.loc[mask].fillna(method='ffill', axis=1)
.fillna
mitffill
ist ok, solange eine verbundene Zelle ist nicht gefolgt von einer volontarily leere Zelle...