我有一个包含两列的数据框。一种是 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 也可以。
我想在我的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)
谢谢!