python - 如何写入最后一次出现的 loc?

标签 python pandas

我有一个带有日期列的dataFrame,有时日期可能会出现两次。 当我写入某个日期时,我想写入具有该日期的最后一行,而不是第一行。

现在我使用:

df.loc[df['date'] == date, columnA] =  value

在像这样的 df 的情况下,它将写入索引 1,而不是 2:

  date       columnA
0 17.4.2022
1 17.5.2022
2 17.5.2022  value             #in the case of 17.5 write the data to this row.
3 17.6.2022

如何确保我始终写入最后一个日期,如果有,则写入该日期?

最佳答案

您可以通过Series.duplicated链接最后一个重复日期值的掩码:

print (df)
        date  columnA
0  17.4.2022        8
1  17.5.2022        1
2  17.5.2022        1
2  17.5.2022        1
3  17.6.2022        3

date = '17.5.2022'
df.loc[(df['date'] == date) & ~df['date'].duplicated(keep='last'), 'columnA'] =  100

print (df)
        date  columnA
0  17.4.2022        8
1  17.5.2022        1
2  17.5.2022        1
2  17.5.2022      100
3  17.6.2022        3

关于python - 如何写入最后一次出现的 loc?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74399314/

相关文章:

python - 仅选择 Pandas 中每连续分钟都有数据的日期范围

python - 使用 OR 根据两列过滤数据框

python - is_prime 函数在测试 121 时失败,不知道为什么

python - 揭开电影剧本的对话以计算角色所说的话

python - 错误: Failed to enable GUI event loop integration for 'qt' while importing pandas

python - 在 Python 中对 str 列表进行切片

使用 mySQL 原始数据库查询进行 Python 字符格式化给我带来了问题

python - 删除 Pandas 中所有只有 1 值的变量

python - 如何一次检测和删除 pandas 数据帧每一列中的异常值?

python - 导入列数不均匀且分隔符复杂的文本文件