Создать дубликаты строк данных для значений в списке?[Python] - PullRequest
0 голосов
/ 11 июня 2018

У меня есть один столбец данных с некоторым идентификатором клиента.

df.head()
id 
12
13
14

Хотите дублировать строки [id] для всех месяцев в году следующим образом:

month_list = ["2018-Jan", "2018-Feb", "2018-Mar"]
df_new.head()
id date
12 2018-Jan 
12 2018-Feb
12 2018-Mar
13 2018-Jan 
13 2018-Feb
13 2018-Mar

Ответы [ 2 ]

0 голосов
/ 11 июня 2018

Вы можете использовать слияние панд: для существующего фрейма данных

import pandas as pd
import numpy as np

df = pd.DataFrame({'id': [1, 2, 3]})
df['key'] = np.repeat(0, len(df))
month_df = pd.DataFrame({'month': ["2018-Jan", "2018-Feb", "2018-Mar"]})
month_df['key'] = np.repeat(0, len(month_df))

df = df.merge(month_df, on='key')
print(df)

Out[10]: 
   id  key     month
0   1    0  2018-Jan
1   1    0  2018-Feb
2   1    0  2018-Mar
3   2    0  2018-Jan
4   2    0  2018-Feb
5   2    0  2018-Mar
6   3    0  2018-Jan
7   3    0  2018-Feb
8   3    0  2018-Mar
0 голосов
/ 11 июня 2018

Использование numpy.repeat с numpy.tile:

df = pd.DataFrame({'id':np.repeat(df['id'], len(month_list)), 
                   'date':np.tile(month_list, len(df))})
print (df)
   id      date
0  12  2018-Jan
0  12  2018-Feb
0  12  2018-Mar
1  13  2018-Jan
1  13  2018-Feb
1  13  2018-Mar
2  14  2018-Jan
2  14  2018-Feb
2  14  2018-Mar
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...