我的单列数据框有一些客户ID。
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
答案 0 :(得分:2)
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
答案 1 :(得分:0)
您可以使用pandas merge:对于现有数据框
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