Значения Pandas Dataframe Merge / Link - PullRequest
0 голосов
/ 17 октября 2018

У меня есть 2 кадра данных df1 и df2.Df1 содержит дату, date_block_num, item_id, item_cnt_day и имеет автоматически увеличивающийся индекс int.Df2 содержит столбцы с датами, такими как 2013-01-01, 2013-01-02 и имеет item_id для индекса, я инициализировал его нулями.

Моя проблема в том, что я хочу, чтобы df2 был заполнен значениями item_cnt_day справа от item_id и date.Также отсутствуют даты от df1, потому что есть дни, когда ничего не продавалось.

print(df1)

              date  date_block_num  item_id  item_cnt_day
1       2013-01-03               0     2552           1.0
2       2013-01-05               0     2552           2.0
3       2013-01-06               0     2554           1.0
4       2013-01-15               0     2555           5.0
5       2013-01-10               0     2564           1.0
6       2013-01-02               0     2565           4.0
7       2013-01-04               0     2572           1.0

[186104 rows x 4 columns]


print(df2)

       2013-01-01  2013-01-02     ...      2015-10-30  2015-10-31
5652            0           0     ...               0           0
13071           0           0     ...               0           0
5671            0           0     ...               0           0
5672            0           0     ...               0           0
6675            0           0     ...               0           0
1514            0           0     ...               0           0
2331            0           0     ...               0           0
4271            0           0     ...               0           0

[198 rows x 1034 columns]

1 Ответ

0 голосов
/ 17 октября 2018

Я полагаю, вам нужно pivot с reindex, если второй DataFrame заполнен только 0:

df = (df1.pivot('item_id','date','item_cnt_day')
         .reindex(index=df2.index, columns=df2.columns)
         .fillna(0))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...