【问题标题】:Pandas dataframe apply to datetime column : does not work熊猫数据框适用于日期时间列:不起作用
【发布时间】:2020-03-20 10:56:50
【问题描述】:

我有一个带有日期时间列的数据框。如果日期不如其他日期,我想应用一个函数在此列中将值设置为无。但是应用的功能将我的所有值都设置为无。你能帮帮我吗?

这是我的代码:

dateused = datetime.datetime.strptime('202004', '%Y%m')
df['date_pack'] =df['date_pack'].apply(lambda x: None if x < dateused else x)

df['date_pack'] 的 dtype 是 datetime64[ns]。 在此之后,我的列“date_pack”中的所有值都是无。

谢谢

【问题讨论】:

    标签: python pandas datetime apply


    【解决方案1】:

    我认为您需要 Series.mask 并将值设置为 NaT 以获取日期时间的错误值:

    df = pd.DataFrame({'date_pack': pd.to_datetime(['2020-08-10','2002-02-09'])})
    
    dateused = datetime.datetime.strptime('202004', '%Y%m')
    df['date_pack'] = df['date_pack'].mask(df['date_pack'] < dateused)
    print (df)
       date_pack
    0 2020-08-10
    1        NaT
    

    【讨论】:

    • @JulienThillard - 它通过掩码设置值,所以如果 first 不像 dateused 然后 Nat。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-27
    • 2019-03-18
    • 1970-01-01
    • 1970-01-01
    • 2023-01-19
    • 2023-03-20
    • 2019-06-24
    相关资源
    最近更新 更多