小编Jac*_*ack的帖子

Pandas - 日期范围内每一天的新行

我有一个 Pandas df,其中一列 (Reservation_Dt_Start) 表示日期范围的开始,另一列 (Reservation_Dt_End) 表示日期范围的结束。

我不想每行都有一个日期范围,而是希望扩展每行以包含与日期范围中的日期一样多的记录,每个新行代表这些日期之一。

请参阅下面的两张图片,了解示例输入和所需的输出。

输入输出

下面的代码片段有效!但是,对于输入表中的每 250 行,运行时间为 1 秒。鉴于我的输入表大小为 120,000,000 行,此代码将需要大约一周的时间才能运行。

pd.concat([pd.DataFrame({'Book_Dt': row.Book_Dt,
                         'Day_Of_Reservation': pd.date_range(row.Reservation_Dt_Start, row.Reservation_Dt_End),
                         'Pickup': row.Pickup,
                         'Dropoff' : row.Dropoff,
                         'Price': row.Price}, 

                          columns=['Book_Dt','Day_Of_Reservation', 'Pickup', 'Dropoff' , 'Price']) 
                          for i, row in df.iterrows()], ignore_index=True)
Run Code Online (Sandbox Code Playgroud)

必须有一种更快的方法来做到这一点。有任何想法吗?谢谢!

python pandas

5
推荐指数
1
解决办法
5711
查看次数

Pandas 合并 < 运算符

我有df从 A -> B/C 出发的航班时间以及从 B/C -> Z 出发的航班。

日程

我想找到 A->Z 之间可能的一站式路线。这些需要在 B/C 停留。

一个简单的合并就可以了。

routes = pd.merge(df , df , left_on = 'Destination' , right_on = 'Origin')
Run Code Online (Sandbox Code Playgroud)

路线

但是,我的时间表 df 有数千个从 A -> B/C/D/.../Y 出发的航班,以及数千个从 B/C/D/.../Y->Z 出发的航班。将此表与其自身合并会产生一个routes长达数十亿行的表。我可以通过筛选停留时间<24 小时的路由来筛选出较小的 df。

routes = routes[routes['Time_y'] - routes['Time_x'] < 24]
Run Code Online (Sandbox Code Playgroud)

首先计算所有可能的路线,然后筛选出中转时间小于 24 小时的路线,这在计算上是不可行的。有什么办法可以pd.merge在中转时间<24小时的情况下同时进行吗?伪代码是:

routes = pd.merge(df , df , left_on = 'Destination' , right_on = 'Origin' , right['Time'] - left['Time'] < 24)
Run Code Online (Sandbox Code Playgroud)

这是示例数据:

df = pd.DataFrame({'Origin': {1: 'A', …
Run Code Online (Sandbox Code Playgroud)

python pandas

5
推荐指数
1
解决办法
366
查看次数

Oracle EXPLAIN PLAN FOR 不返回任何内容

我在 Oracle 数据库上运行以下查询:

EXPLAIN PLAN FOR
SELECT *
FROM table_name
Run Code Online (Sandbox Code Playgroud)

但是,它没有返回任何数据。当我删除该EXPLAIN PLAN FOR子句时,查询确实按预期运行。谢谢您的帮助!

如果相关的话,我将通过 Teradata 和 Jupyter IPython 笔记本访问数据库。

sql oracle jupyter-notebook

3
推荐指数
1
解决办法
2300
查看次数

标签 统计

pandas ×2

python ×2

jupyter-notebook ×1

oracle ×1

sql ×1