Ich versuche, Semeion Handwritten Digit Data Set als Pandas DataFrame zu importieren, aber die erste Zeile wird als Spaltennamen genommen.Python Pandas - Hinzufügen von Spaltennamen mit For-Anweisung
df.head()
0.0000 0.0000.1 0.0000.2 0.0000.3 0.0000.4 0.0000.5 1.0000 1.0000.1 \
0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0
1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
2 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0
3 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0
4 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0
1.0000.2 1.0000.3 ... 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8
0 1.0 1.0 ... 1 0 0 0 0 0 0 0 0 0
1 0.0 1.0 ... 1 0 0 0 0 0 0 0 0 0
2 1.0 1.0 ... 1 0 0 0 0 0 0 0 0 0
3 0.0 1.0 ... 1 0 0 0 0 0 0 0 0 0
4 1.0 1.0 ... 1 0 0 0 0 0 0 0 0 0
[5 rows x 266 columns]
Da der Datenrahmen 266 Spalten hat, ich versuche Zahlen als Spaltennamen zuweisen, Lambda und ein for-Schleife .... mit dem folgenden Code:
df = pd.read_csv("http://archive.ics.uci.edu/ml/machine-learning-databases/semeion/semeion.data", delimiter = r"\s+",
names = (lambda x: x for x in range(0,266)))
Aber mir immer seltsam Spaltennamen, wie:
>>> df.head(2)
<function <genexpr>.<lambda> at 0x04F4E588> \
0 0.0
1 0.0
<function <genexpr>.<lambda> at 0x04F4E618> \
0 0.0
1 0.0
<function <genexpr>.<lambda> at 0x04F4E660> \
0 0.0
1 0.0
Wenn ich die Klammer zu entfernen, dann wird der Code wirft einen Syntaxfehler:
>>> df = pd.read_csv("http://archive.ics.uci.edu/ml/machine-learning-databases/semeion/semeion.data", delimiter = r"\s+",
names = lambda x: x for x in range(0,266))
SyntaxError: invalid syntax
Kann mir jemand sagen:
1) Wie Spaltennamen als Zahlen erhalten ... ab 0 bis 266
2) Wenn im Fall bekomme ich einen Datenrahmen mit dem ersten Zeile als Spaltennamen, wie schiebe ich es runter und füge neue Spaltennamen hinzu, ohne die erste Zeile zu verlieren?
TIA
Danke ... Es hat funktioniert! Aber was ist falsch in meinem Lambda-Code? – chhibbz
Ich denke, Problem ist es brauchen Liste von Spalten Namen, so dass "Bereich" notwendig ist. – jezrael