我正在尝试两行不同的代码,它们都涉及计算 df 与 500k 行的行的组合。
我认为在大量的组合中,内核不断死亡。有办法解决这个问题吗?
崩溃的两行代码是
pd.merge(df.assign(key=0), df.assign(key=0), on='key').drop('key', axis=1)
Run Code Online (Sandbox Code Playgroud)
和
index_comb = list(combinations(df.index, 2))
Run Code Online (Sandbox Code Playgroud)
两者都是实现相同所需 df 的不同方法,但 kernal 都失败了。
将不胜感激任何帮助:/
更新:我尝试在终端中使用代码,它给了我一个错误:killed 9:它在终端中也使用了太多内存?
我有一个名为“日”的日期列,例如,2019/07/22如果我想创建一个自定义字段,将该日期转换为一周中的实际日期,例如星期日或星期一,这怎么可能?我似乎找不到适用于 presto sql 的方法。
感谢您的关注
我想知道是否有一种方法可以验证一个 df 中与另一个 df 连接的值是否存在于两个 dfs 或另一个 df 中,然后再将它们堆叠在一起?
我有两个 dfs
df = pd.concat([df1, df2])
df = df.sort_values(by=['id', 'timestamp']).reset_index(drop=True)
df
id timestamp
0 1 1959-06-01
1 1 2019-01-01
2 1 2019-01-02
3 2 1989-12-01
4 2 2019-01-15
5 3 1999-01-25
6 3 2019-01-17
7 3 2019-02-01
8 3 2019-02-03
Run Code Online (Sandbox Code Playgroud)
有没有办法在类似于合并的连接之前验证 df1 中的 ID 是否存在于 df2 中?我不需要合并,而是将 dfs 连接在一起。
一个 df 有多个 id 和时间戳,另一个 df 只有一个 ID,我想确保只有两个 df 中都存在的 ID 才会出现在生成的串联 df 中
谢谢!
如何将包含日期和时间的时间戳字段转换为 Prestosql 中的本地时间?这些字段看起来像
Region ID | Start Time utc | End Time utc
abc 2019-04-26 20:00:00.000 2019-04-26 23:00:00.000
cdx 2019-02-27 23:30:00.000 2019-02-28 01:00:00.000
Run Code Online (Sandbox Code Playgroud)
我有区域 IDS,因此如果需要或者如果这样更容易,我可以在查询中输入该行所需的时区 ID。
我只想返回该时区的本地开始和结束时间。
查询是
SELECT table1.*
FROM table1
WHERE table1.day = date '2019-04-03' AND
NOT EXISTS (SELECT 1
FROM table2
WHERE table1.id = table2.id AND
table1.timestamp >= table2.start_time AND
table1.timestamp <= table2.end_time
)
Run Code Online (Sandbox Code Playgroud)
其中表 2 是我想要转换为当地时间的开始和结束时间...
其中 utc 时间位于开始时间和结束时间的不存在子句中,我如何将其更改为当地时间?在美国,不是所有时间都是相同的时区?有一个区域 ID 字段,我可以使用该字段将该区域 ID 链接到时区,我可以使用它吗?
我有一个查询如下,
SELECT column
FROM table
WHERE day IN date ('2019-06-27','2019-07-08', '2019-07-10')
Run Code Online (Sandbox Code Playgroud)
列日中的值的格式为2019-07-07 12:30:15.744
目前不允许我使用特定日期列表之前的日期语法过滤日期。
如何正确编码此查询以仅检索该日期列表的数据?谢谢!
我有 df 例如:
Hour
12:00pm
12:00am
3:00pm
2:00pm
11:00pm
Continued....
Run Code Online (Sandbox Code Playgroud)
我想创建一个新列,根据条件提供该时间段,例如,如果在上午 6:00 到 11:59 之间,则默认,如果在下午 12:00 到下午 3:59 之间,则及时,如果在下午 4:00 到 11 之间:59pm 然后迟到,如果在 12:00am 和 5:59am 之间则无效。
想要使用类似下面的代码:
def func(row):
if row['Hour'] >= 06:00am & < 12:00pm:
return 'defualt'
elif row['Hour'] >= 12:00pm & < 04:00pm:
return 'timley'
elif row['Hour'] >= 04:00pm & < 12:00am:
return 'late'
elif row['Hour'] >= 12:00am & < 06:00am:
return 'nonvalid'
else:
return 'other'
df['Segment'] = df.apply(func, axis=1)
Run Code Online (Sandbox Code Playgroud)
但是小时列不是日期时间,所以不确定它是否会读取我函数中的范围。
Expected output:
Hour Segment
12:00pm …Run Code Online (Sandbox Code Playgroud) data-science ×3
presto ×3
python ×3
python-3.x ×3
sql ×3
pandas ×2
trino ×2
combinations ×1
dataframe ×1
date ×1
merge ×1