python - 在数据框中保留连续的天数

标签 python pandas dataframe date filtering

我希望仅在数据框中保留基于个人的连续天数的条目。

假设我的数据框定义为 -

dic = {'name':['John','John','John','Susan','Susan','Susan','Susan','Mike',
               'Mike','Mike'],
       'worked':['2020-03-12','2020-03-13','2020-03-15','2020-03-16',
                 '2020-03-18','2020-03-19','2020-03-20','2020-03-31',
                 '2020-03-29','2020-04-01'],
       'paid':[100,200,300,400,500,100,200,300,400,500]}
df = pd.DataFrame(dic)
df['worked'] = pd.to_datetime(df['worked'])
print(df)

带输出-

    name     worked  paid
0   John 2020-03-12   100
1   John 2020-03-13   200
2   John 2020-03-15   300
3  Susan 2020-03-16   400
4  Susan 2020-03-18   500
5  Susan 2020-03-19   100
6  Susan 2020-03-20   200
7   Mike 2020-03-31   300
8   Mike 2020-03-29   400
9   Mike 2020-04-01   500

我想要的输出看起来像这样-

    name     worked  paid
0   John 2020-03-12   100
1   John 2020-03-13   200
2  Susan 2020-03-18   500
3  Susan 2020-03-19   100
4  Susan 2020-03-20   200
5   Mike 2020-03-31   300
6   Mike 2020-04-01   500

最佳答案

我的 2 美分与 diff;

df = df.sort_values(['name','worked'])
c = df.groupby("name")['worked'].diff().dt.days.eq(1)
df[c|c.shift(-1)].sort_index()

    name     worked  paid
0   John 2020-03-12   100
1   John 2020-03-13   200
4  Susan 2020-03-18   500
5  Susan 2020-03-19   100
6  Susan 2020-03-20   200
7   Mike 2020-03-31   300
9   Mike 2020-04-01   500

关于python - 在数据框中保留连续的天数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62559795/

相关文章:

python - Plone python脚本中的字符串转义

python - 从 Pandas 中的字符串中删除字符

python - Dask:从 Parquet 写入/读取后索引不一致

python - 索引在 pandas 数据框中无法正常工作

python - 将数字添加到多维数组python

python - Pandas 无效类型比较错误

python - Geopandas 连接形状文件的着色

python - 如何使用 python pandas 通过多索引获取值?

r - 自定义类继承 `data.frame`及替换方法

python - 使用多处理时未在 python 中更新全局变量