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 - 基维理解

mysql - python : Add primary key to MySQL with dataframe. to_sql

python - 为什么覆盖我的方法会导致我的属性停止正常工作?

python - Spark Dataframe 是否具有与 Panda 的合并指示器等效的选项?

pandas - 绘制具有不同线型的 Pandas 数据框子图

asp.net - 涉及日期时间的有点奇怪的 .NET 错误

sql - 在SQL Server中无时间比较日期的最佳方法

PHP:日期函数获取当前日期的月份

python - Python列表是否与我的数据结构和算法教科书定义的列表相同?

python - 在 matplotlib 的颜色条中修复 ylabel 位置