эффективный поиск данных с использованием pandas фрейма данных - PullRequest
0 голосов
/ 06 августа 2020

У меня есть 3 файла CSV, 1-й - 1 млн записей, 2-й - 2 млн, 3-й - 5 млн. файл 1 имеет столбцы cust_id, fname, lname файл 2 имеет столбцы cust_id, prod_id, price, date файл 3 имеет столбцы prod_id, prod_code, price, количество

, поэтому я хочу выбрать сведения о 10 клиентах сверху три файла и поместите их в 3 разных новых файла csv. то есть для каждого клиента (из 10 клиентов) я хочу cust_id, fname, lname из файла1 и помещать результат в новый файл CSV, cust_id, prod_id, price, date из файла2, помещать результат в новый файл CSV, prod_id, prod_code, price, количество из файла3 поместите результат в новый файл csv.

код:

import pandas as pd

customers = pd.read_csv("customers10.csv")

customer_details = pd.read_csv("file1.csv")

products = pd.read_csv("file2.csv")

product_items = pd.read_csv("file3.csv")

table1 = pd.DataFrame(columns=file1.columns)

table1 = pd.concat([customer_details[customer_details['cust_id'].isin(customer_details['cust_id'])],table1])

table2 = pd.DataFrame(columns=products.columns)

table2 = pd.concat([products[products['cust_id'].isin(customer_details['cust_id')],table2])

table3 = pd.DataFrame(columns=product_items.columns)

table3 = pd.concat([product_items[product_items['prod_id'].isin(products['prod_id'])],table3])

Я хочу использовать это для файлов с миллионами записей, это эффективно или есть какие-либо другие способами?

1 Ответ

1 голос
/ 06 августа 2020

pandas read_csv() имеет параметры, которые могут быть полезны для таких относительно больших наборов данных. См. iterator, chunk size и memory_map в документации: https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_csv.html

pandas - это система в памяти, поэтому «большой набор данных» относится к объем оперативной памяти компьютера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...