在Pandas DataFrame中查找最新连续条纹的开始日期

ax6ht2ek  于 2023-04-10  发布在  其他
关注(0)|答案(2)|浏览(122)

我有一个DataFrame,看起来像这样:
| 日期|箱数|
| --------------|--------------|
| 2023-04-02 2023-04-02|三|
| 2023-04-03 2023-04-03|0|
| 2023-04-04 2023-04-04|0|
| 2023-04-05 2023-04-05 2023-04-05|1|
| 2023-04-06 2023-04-06|0|
| 2023-04-07 2023-04-07|0|

**如何编写一个函数来查找0 cases_count连续条纹的最新 * 日期 *?**在上面的示例中,函数应该返回2023-04-06

谢谢大家!
我试着找到cases_count == 0所在的 * 最新 * 天,但这忽略了在此之前连续出现日期的可能性。

qltillow

qltillow1#

要回答问题的 * 标题 *,您可以使用diff/loc/tail

#is it the continuous streak start ?
m = df["cases_count"].diff(-1).eq(0)

out = df.loc[m, "date"].tail(1).item() # or max()
#'2023-04-06'
irlmq6kh

irlmq6kh2#

可以使用布尔掩码:

import numpy as np

# boolean mask
m = df['cases_count'].eq(0) & df['cases_count'].shift().ne(0)

df.loc[np.where(m)[0][-1], 'date']

# OR

df.loc[m[::-1].idxmax(), 'date']

# Output
'2023-04-06'

相关问题