小编Dav*_*son的帖子

如何按月和组有效计算会员数量

我必须在 Python 中按年、月和组计算大型数据集(N ~ 30M)的唯一活跃成员数量。会员资格始终从月初开始,到月底结束。这是数据的一个非常小的子集。

print(df.head(6))
   member_id  type  start_date    end_date
1         10     A  2021-12-01  2022-05-31
2         22     B  2022-01-01  2022-07-31
3         17     A  2022-01-01  2022-06-30
4         57     A  2022-02-02  2022-02-28
5         41     B  2022-02-02  2022-04-30
Run Code Online (Sandbox Code Playgroud)

我当前的解决方案效率低下,因为它依赖于 for 循环:

import pandas as pd


date_list = pd.date_range(
    start=min(df.start_date),
    end=max(df.end_date),
    freq='MS'
)
members = pd.DataFrame()

for d in date_list:
    df['date_filter'] = (
        (d >= df.start_date)
        & (d <= df.end_date)
    )
    grouped_members = (
         df
         .loc[df.date_filter]
         .groupby(by='type', as_index=False)
         .member_id
         .nunique()
    )
    member_counts = pd.DataFrame( …
Run Code Online (Sandbox Code Playgroud)

python datetime vectorization pandas

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

使用R将多个数据帧写入.csv文件

我使用lapply将函数应用于许多数据框:

data.cleaned <- lapply(data.list, shooter_cleaning)
Run Code Online (Sandbox Code Playgroud)

然后根据其主题编号(例如,100)标记列表中的每个结果数据帧:

names(data.cleaned) <- subject.names
Run Code Online (Sandbox Code Playgroud)

我想要做的是根据主题编号将每个新数据框保存为单独的.csv文件.例如,对于主题100,我希望.csv文件被标记为"100.csv"通常要这样做(对于单个数据帧)我只会写(其中x是数据帧):

write.csv(x, "100.csv", row.names = F)
Run Code Online (Sandbox Code Playgroud)

但是,显然使用lapply为我的数据框列表执行此操作只会产生许多"100.csv"的副本,而我希望这些文件根据其主题编号是唯一的.我如何(使用apply to?)将每个数据帧保存到自己唯一的.csv文件中?

r lapply export-to-csv

4
推荐指数
2
解决办法
1万
查看次数

标签 统计

datetime ×1

export-to-csv ×1

lapply ×1

pandas ×1

python ×1

r ×1

vectorization ×1