如何快速创建具有重复值的数据框

时间:2019-02-25 14:01:29

标签: python python-3.x pandas dataframe

我想遵循以下规则,仅用代码构建一个3,000行长的数据框(到目前为止,我是从XLS导入文档的):

热门索引:enter image description here

航班编号:我想在另一个更简单的数据框中定义编号。航班号保持不变24次(请参阅出发时间)。数据框如下所示:

df = pd.DataFrame({'Flight Number':['LX2104','LX2105','LX2320','LX2321','LX1232','LX1232'], 
               'Leg Route': ['GVA-AGP','GVA-AGP','GVA-AJA','GVA-AJA','GVA-ARN','GVA-ARN']})
               'Leg Flight Pair': ['LX2104/2105','LX2104/2105','LX2320/2321','LX2320/2321','LX1232/1233','LX1232/1233']})

enter image description here

STD出发地:从-到23(-,1、2、3、4、5、6、7、8、9、10、11、12、13、14、15, 16,17,18,19,20,21,22,23) 航段路线:类似于航班号,这也将在数据框中定义(上面的df) 航段飞行对:类似于航班号和航段路线,这也将在数据框中定义(上面的df) 产品:我会在列表中列出产品名称

这将是预期结果的开始enter image description here

1 个答案:

答案 0 :(得分:3)

df = pd.DataFrame({
    'Flight Number':['LX2104','LX2105','LX2320','LX2321','LX1232','LX1232'], 
    'Leg Route': ['GVA-AGP','GVA-AGP','GVA-AJA','GVA-AJA','GVA-ARN','GVA-ARN'],
    'Leg Flight Pair': ['LX2104/2105','LX2104/2105','LX2320/2321','LX2320/2321','LX1232/1233','LX1232/1233']
})
n_flights = len(df)
df = pd.concat([df]*24).sort_values('Flight Number').reset_index(drop=True)
df['STD Departure'] = np.tile(np.arange(24), n_flights)
cols = ['Prod1', 'Prod2']
for col in cols:
  df[col] = 0

输出

>>> df.head()

Flight Number   Leg Flight Pair     Leg Route   STD Departure   Prod1   Prod2
0   LX1232      LX1232/1233         GVA-ARN             0           0       0
1   LX1232      LX1232/1233         GVA-ARN             1           0       0
2   LX1232      LX1232/1233         GVA-ARN             2           0       0
3   LX1232      LX1232/1233         GVA-ARN             3           0       0
4   LX1232      LX1232/1233         GVA-ARN             4           0       0