首页 > 解决方案 > 复制数据行,然后使用 pandas 在新列中添加一系列日期

问题描述

我有一个以下格式的数据集,但是数据集要大得多:

import pandas as pd
df1 = pd.DataFrame({'From': ['RU','USA','ME'],
               'To': ['JK', 'JK', 'JK'],
               'Distance':[ 40000,30000,20000],
               'Days': [8,6,4]})

我想为每个位置添加一个日期范围:

date_rng = pd.date_range(start='01/02/2020', freq='MS', periods=3)

最终结果应如下所示:

df2 = pd.DataFrame({'Date':['01/02/2020' , '01/03/2020', '01/04/2020','01/02/2020' , '01/03/2020', '01/04/2020','01/02/2020' , '01/03/2020', '01/04/2020'],
               'From': ['RU', 'RU', 'RU','USA', 'USA', 'USA','ME', 'ME', 'ME'],
               'To': ['JK', 'JK', 'JK','JK', 'JK', 'JK','JK', 'JK', 'JK'],
               'Distance':[ 40000, 40000, 40000,30000, 30000, 30000,20000, 20000, 20000],
               'Days': [8,8,8,6,6,6,4,4,4]})

标签: pythonpandasdataframetime-series

解决方案


也许这会满足你的需要:

l = []
for d in date_rng:
    df1['Date'] = d
    l.append(df1.copy())

pd.concat(l)

推荐阅读