У меня есть два кадра данных панда: один с премиум-клиентами, df_premium_customer
и один со всеми проданными товарами, df_sold
, который имеет в качестве столбцов «customerID» (содержащий идентификаторы как премиум-клиентов, так и других), «ArticleID»,« Свидание »и несколько других.
Так выглядит df_premium_customer
<!DOCTYPE html>
<html>
<head>
<style>
table, th, td {
border: 1px solid black;
}
</style>
</head>
<body>
<h2>Bordered Table</h2>
<p>Use the CSS border property to add a border to the table.</p>
<table style="width:100%">
<tr>
<th>Premium_CustomerID</th>
</tr>
<tr>
<td>34674324</td>
</tr>
<tr>
<td>18634345</td>
</tr>
<tr>
<td>99744336</td>
</tr>
</table>
</body>
</html>
и это df_sold
выглядит
<!DOCTYPE html>
<html>
<head>
<style>
table, th, td {
border: 1px solid black;
}
</style>
</head>
<body>
<h2>Bordered Table</h2>
<p>Use the CSS border property to add a border to the table.</p>
<table style="width:100%">
<tr>
<th>CustimerID</th>
<th>ArticleID</th>
<th>Date</th>
</tr>
<tr>
<td>34674324</td>
<td>3467434</td>
<td>20140302</td>
</tr>
<tr>
<td>98674342</td>
<td>3454234</td>
<td>20140822</td>
</tr>
<tr>
<td>74644334</td>
<td>4444434</td>
<td>20150321</td>
</tr>
</table>
</body>
</html>
Для каждого клиента мне нужно создать структуру данных (предварительно я выбрал дикт), которая показывает, что было продано каждому премиум-клиенту.
ИтакПока я использую следующий код Python 3:
sold_to_customer = {}
for customer in df_premium_customer["CustomerID"]:
#generate the list of indexes of this this customers appears in df_sold
cust_index = df_sold.index[df_sold['CustomerID'] == customer].tolist()
#add this customers as key to the dict
sold_to_customer[customer] = []
for ind in cust_index:
#add the name of the things he bought,when, and for how much as values to this key
sold_to_customer[customer].append(list(df_sold[ind][["ArticleID","Date"]]))
Это очень медленный способ!
Дать ему немного поработать и экстраполировать нужно 16часов до завершения, поскольку у меня 300 000 премиум-клиентов и несколько миллионов строк записей в кадре проданных товаров.