python - Dataframe - 在按日期分组的行中查找第一个 0

标签 python pandas dataframe

我每天都有多个数据点。我需要检测每天的第一个 0。我想将 Data 转换为 Output 列。

ho

可重现格式的数据:

Date,Data,Output
1/1/2019,1,False
1/1/2019,1,False
1/1/2019,0,True
1/1/2019,0,False
1/1/2019,1,False
2/1/2019,1,False
2/1/2019,0,True
2/1/2019,1,False
3/1/2019,0,True
3/1/2019,0,False

我认为这可能涉及 groupby 功能,但正在努力弄清楚如何开始。

最佳答案

使用复制:

df["output"] = ~(df[df["Data"]==0].duplicated(subset=["Date","Data"],keep="first"))
df["output"].fillna(False, inplace=True)

print (df)

#
        Date  Data  output
0  1/01/2019     1   False
1  1/01/2019     1   False
2  1/01/2019     0    True
3  1/01/2019     0   False
4  1/01/2019     1   False
5  2/01/2019     1   False
6  2/01/2019     0    True
7  2/01/2019     1   False
8  3/01/2019     0    True
9  3/01/2019     0   False

关于python - Dataframe - 在按日期分组的行中查找第一个 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58722214/

相关文章:

python - 应用函数后如何将 pandas 中的一行替换为多行?

python - python 中的百分位数

python - 如何消除python中的分组对象

python - 使用数据框中的值进行索引

Python依赖分析器库

python - Pandas groupby 查找真假百分比

python - 如何 reshape 图像的尺寸以包含图像数量(即 1)?

python - 更改数据透视表的索引?

python - 如何删除数据帧(python)中具有起始索引和结束索引的一行索引?

python - 将月末或周末系列转换为每日系列