У меня есть два CSV-файла, df1_50GB.csv и df2_1GB.csv. Я хотел бы объединить кадры данных на основе сопоставленного значения идентификатора. вот что я сделал до сих пор
f50GB = "df1_50GB.csv"
f1GGB = "df1_1GGB.csv"
result_file = "output.csv"
tmp50GB = pd.read_csv(f50GB, nrows=3)
tmp1GB = pd.read_csv(f1GGB, nrows=3)
# creating an empty bucket to save result
df_result = pd.DataFrame(columns=(tmp50GB.columns.append(tmp1GB.columns)).unique())
df_result.to_csv(result_file, index_label=False)
tmp1GB = pd.read_csv(f1GGB)
# Save (append) data which the ID of f1GB mached with f50GB i.e (x) #
def save_merged_csv(x):
df = pd.merge(x, tmp1GB, on='ID', how='left')
df.to_csv(result_file, mode="a", header=False, index=False)
# create the iterator
csv_reader = pd.read_csv(
f50GB,
iterator=True,
chunksize=100000)
[save_merged_csv(r) for r in csv_reader]
Но я продолжаю получать ошибки 'Ошибка типа: может объединять только объекты Series или DataFrame, a передано' [ОБНОВЛЕНИЕ] Ошибка теперь исправлена. Спасибо @Майкл Гарднер. Но я не уверен, что логика верна. Размер файла результата слишком велик. Это также очень медленно. Итак, я оставлю это здесь, если есть место для улучшения.