python - 替换日期大于其他日期的 DateTime 列值

标签 python pandas datetime

我试图替换特定列中日期大于特定日期的所有 DateTime 值。

df 的示例如下所示。

date
2016-01-03
2016-01-03
2016-01-03
2016-01-02
2016-01-02
2016-01-02
2016-01-01
2016-01-01
2015-12-31
2015-12-31
2015-12-31

我希望所有大于 2016-01-01 的日期都显示为 2016-01-01

我想要的预期输出如下所示。

date
2016-01-01
2016-01-01
2016-01-01
2016-01-01
2016-01-01
2016-01-01
2016-01-01
2016-01-01
2015-12-31
2015-12-31
2015-12-31

如能提供任何帮助,我们将不胜感激。

最佳答案

使用Series.clip带日期时间 - 例如带时间戳:

#if necessary
#df['date'] = pd.to_datetime(df['date'])

df['date'] = df['date'].clip(upper=pd.Timestamp('2016-01-01'))
print (df)
         date
0  2016-01-01
1  2016-01-01
2  2016-01-01
3  2016-01-01
4  2016-01-01
5  2016-01-01
6  2016-01-01
7  2016-01-01
8  2015-12-31
9  2015-12-31
10 2015-12-31

关于python - 替换日期大于其他日期的 DateTime 列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56495938/

相关文章:

python - 在 ubuntu 14.04 上安装 Pillow 时出错

python - arr.__len__() 是在 Python 中获取数组长度的首选方法吗?

Python:循环字典,一次两个键

python - 从日期 python 中提取年/月到新列

python Pandas : How to create a binary matrix from column of lists?

javascript - 查找键值的对象键并将其转换为 moment.utc()?

javascript - 几个世纪以来的 UTC 时间

python - 处理简单的 HTML 表格列解析

datetime - 导入错误: cannot import name 'strftime'

python - 在引用 pandas DataFrame 的下一个元素时省略循环