Я прихожу из фона Excel, но я люблю панды, и это действительно сделало меня более эффективным. К сожалению, я, вероятно, переношу некоторые вредные привычки из Excel. У меня есть три больших файла (от 2 до 13 миллионов строк каждая), которые содержат данные о взаимодействиях, которые могут быть связаны между собой, к сожалению, нет уникального ключа, связывающего файлы. Я буквально конкатенация (формула Excel) 3 поля в один новый столбец во всех трех файлах.Присоединение файлов в pandas
Три столбца, которые существуют в каждом файле, который я объединил (другие поля будут похожи на причину взаимодействия в одном файле, оценку на другой файл и некоторые другие данные по третьему файлу, которые я хотел бы связать обратно к определенному agentID):
Date | CustomerID | AgentID
я изменить свой формат даты, чтобы быть однородным по каждому файлу:
df[Date] = pd.to_datetime(df['Date'], coerce = True)
df[Date] = df[Date].apply(lambda x:x.date().strftime('%Y-%m-%d'))
Затем я создаю уникальный столбец (ну, как уникальные, как я могу получить это ... иногда один и тот же клиент взаимодействует с тем же агентом в тот же день, но это должно быть довольно редко):
df[Unique] = df[Date].astype(str) + df[CustomerID].astype(str) + df[AgentID].astype(str)
я те же шаги для df2, а затем:
combined = pd.merge(df, df2, how = 'left', on = 'Unique')
Я обычно посылают, что новый файл CSV в случае что-то аварии, GZIP он, затем прочитайте его снова и снова выполните тот же процесс с третьим файлом.
final = pd.merge(combined, df2, how = 'left', on = 'Unique')
Как вы можете видеть, это требует времени. Я должен отформатировать даты на каждом, а затем превратить их в текст, создать столбец объекта, который добавляет размер файла, и (из-за самих проблем с исходными данными) удалить дубликаты, чтобы я случайно не раздувал числа. Есть ли более эффективный рабочий процесс для меня?
Awesome. Работал. Прекрасно спасибо. Я вернулся и редактировал все мои файлы присоединения. – trench