2017-12-30 4 views
1

Angenommen, ich habe einen leeren Datenrahmen, der bereits mit Spalten, aber ohne Zeilen eingerichtet ist. Ich kratze einige Daten aus dem Internet, sagen wir mal, ich muss einen Index '2176' zu dem leeren Datenrahmen hinzufügen. Wie kann ich diese Zeile automatisch zur Datenbank hinzufügen, wenn ich versuche, sie zuzuweisen? Ist das überhaupt Pandas oder sollte ich etwas anderes benutzen?Zeilen dynamisch zu DataFrame hinzufügen

Antwort

1
import pandas as pd 

df = pd.DataFrame(columns=['foo1','foo2']) 

df.loc[2176,'foo1'] = 'my_value' 

df ist dann:

 foo1  foo2 
2176 my_value NaN 
2

Als Alternative zu .loc, könnte man at betrachten. Mit @ NickBraunagel dem Beispiel:

df = pd.DataFrame(columns=['foo1','foo2']) 

Dann

df.at['2716', 'foo1'] = 10 

ergibt

 foo1 foo2 
2716 10 NaN 

Timings sind ganz anders:

# @NickBraunagel's solution 
%timeit df.loc['2716', 'foo1'] = 10 
1000 loops, best of 3: 212 µs per loop 

# the at solution 
%timeit df.at['2716', 'foo1'] = 10 
100000 loops, best of 3: 12.5 µs per loop 

Wenn Sie mehrere Spalteneinträge in der hinzufügen möchten Gleichzeitig können Sie Folgendes tun:

d = {'foo1': 20, 'foo2': 10} 
df.at['1234', :] = d 

Nachgeben

 foo1 foo2 
2716 10 NaN 
1234 20 10 
+1

Guter Ruf, Sie gehen davon aus nur Aktualisierung ein Wert/Zelle zu einem Zeitpunkt (die für dieses Beispiel funktioniert). Als Referenz: https://Stackoverflow.com/a/37216587/4245462 – NickBraunagel

+2

@NickBraunagel: Ich denke, diese Annahme ist gültig, da OP über einzelne Zeilen sprach. Danke für die Referenz! – Cleb

Verwandte Themen