Früher hat das Kombinieren von Datenrahmen lange gedauert, aber ich möchte eine gute Methode vorstellen. In meiner Umgebung war ich mehr als 60 Mal schneller erfolgreich! Es kann verwendet werden, um CSV-Dateien desselben Formats zu kombinieren und zu lesen.
Python: 3.7.6
pandas: 1.0.1
Ich habe die CSV gelesen und sie einfach angehängt. Das Lesen und Kombinieren von ca. 2500 CSVs (jeweils ca. 1000 Zeilen) dauerte ** 12 Minuten 42 Sekunden **.
csvs = glob.glob('./data/csv/*.csv')
df = pd.DataFrame()
for csv in csvs:
df = df.append(pd.read_csv(csv))
Ich konnte das Lesen und Kombinieren derselben CSV in ** 11,6 Sekunden ** abschließen. Ich konnte die gleiche Arbeit mit ** 65,6x Geschwindigkeit ** erledigen!
from itertools import chain
def fast_concat(dfs):
def fast_flatten(input_list):
return list(chain.from_iterable(input_list))
col_names = dfs[0].columns
df_dict = dict.fromkeys(col_names, [])
for col in col_names:
extracted = (d[col] for d in dfs)
df_dict[col] = fast_flatten(extracted)
df = pd.DataFrame.from_dict(df_dict)[col_names]
return df
dfs = []
for csv in csvs:
dfs += [pd.read_csv(csv)]
df = fast_concat(dfs)
Mit einem Wort, um zu diktieren https://qiita.com/siruku6/items/4846431198769b38bb41
Dieser Artikel basiert auf einem Beitrag von hier. Die Aufgabe, eine CSV zusammenzustellen, war weit verbreitet und daher sehr hilfreich. Sie können es einfach verwenden, indem Sie eine Liste von Datenrahmen erstellen. Es ist also sehr vielseitig!
Recommended Posts