我有 2 个 DataFrame
df1 由列组成:person_id,day,flag
df2 由列组成:person_id,day_start,day_end
我想添加到 df2 列 num_flags
这将显示 flag
的总和person_id
内的栏目和day_start < day < day_end
间隔。
在没有复杂循环的情况下,哪种方法最快?我正在寻找快速解决方案,例如 merge
最佳答案
>>> df = pd.merge(df1,df2, on="person_id", how="outer")
>>> df["lies_between"] = df.day.between(df.day_start, df.day_end,inclusive=False)
>>> x = pd.pivot_table(df,values="flags",columns="lies_between", index="person_id",aggfunc=np.sum)
>>> x.reset_index(drop=False,inplace=True)
>>> x[["person_id", True]]
这可能会有所帮助:
>>> help(pandas.Series.between_time)
关于python - 根据条件合并数据帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41717553/