小编wba*_*rts的帖子

检查Python日期列表中的任何日期是否在两个日期列之间

我有一个包含两列的数据框。一种是 START_DATE,另一种是 END_DATE。我还有一个 python 日期列表。我想要数据框中的第三列指示 python 列表中的任何日期是否位于数据框中每个特定行的 START_DATE 和 END_DATE 之间。如果日期列表中存在介于 START_DATE 和 END_DATE 之间的日期,则第三列应显示 true。

dates_list = ['2019-01-06', '2019-04-08']

START_DATE|END_DATE|
____________________
2019-01-01|2019-01-12
2019-01-03|2019-01-05
2019-04-03|2019-04-09
Run Code Online (Sandbox Code Playgroud)

我想要显示第三列

TRUE
FALSE
TRUE
Run Code Online (Sandbox Code Playgroud)

如果能放在 pyspark 中就太好了,但 pandas 也可以。

python date pandas pyspark

6
推荐指数
1
解决办法
3215
查看次数

将分组的聚合nunique列添加到pandas数据帧

我想在我的pandas数据帧中添加一个聚合的,分组的,nunique列,但不会聚合整个数据帧.我试图在一行中执行此操作,并避免创建新的聚合对象并合并它等.

我的df有track,type和id.我希望每个轨道/类型组合的唯一ID数量作为表格中的新列(但不会在生成的df中折叠轨道/类型组合).相同行数,1列.

这样的事情不起作用:

df['n_unique_id'] = df.groupby(['track', 'type'])['id'].nunique()
Run Code Online (Sandbox Code Playgroud)

也不是

df['n_unique_id'] = df.groupby(['track', 'type'])['id'].transform(nunique)
Run Code Online (Sandbox Code Playgroud)

最后一个适用于一些聚合函数,但不适用于其他函数.以下工作(但在我的数据集上没有意义):

df['n_unique_id'] = df.groupby(['track', 'type'])['id'].transform(sum)
Run Code Online (Sandbox Code Playgroud)

在R中,这很容易在data.table中完成

df[, n_unique_id := uniqueN(id), by = c('track', 'type')]
Run Code Online (Sandbox Code Playgroud)

谢谢!

python aggregate dataframe pandas pandas-groupby

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

标签 统计

pandas ×2

python ×2

aggregate ×1

dataframe ×1

date ×1

pandas-groupby ×1

pyspark ×1