【问题标题】:How to quickly create dataframe with repeated values如何快速创建具有重复值的数据框
【发布时间】:2019-02-25 22:32:57
【问题描述】:

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

顶部索引:

航班号:我想在另一个更简单的数据框中定义数字。航班号保持不变 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']})

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) Leg Route:类似于航班号,这也将在数据框中定义(上面的df) Leg Flight Pair:类似于 Flight Number & Leg Route,这也将在数据框中定义(上面的 df) 产品:我会在列表中列出产品名称

这将是预期结果的开始

【问题讨论】:

  • 你好@ManuH。澄清一下,您需要 4 列,其中 3 列都是相同的值,除了 STD Departure 范围从 0 到 23?
  • 是的,前四列是最重要的。其中 3 个将在另一个数据框中定义,但是,我仍然需要它们 24 次。

标签: python python-3.x pandas dataframe


【解决方案1】:
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

【讨论】:

  • (抱歉耽搁了)它成功了!非常感谢。有没有办法可以从字典或其他数据框中添加产品列标题?这样我不必总是在脚本中更改它,但可以更改字典/数据框
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多