我怎么知道 pd.to_datetime 改变了什么?

青葱年少 python 208

原文标题How do I know what have been changed by pd.to_datetime?

假设它是来自 csv 的大型数据库负载,我不知道日期列中有一个“Hello”。

df = {"No.": [1, 2, 3, 4],
      "Date": ["17/4/2022", "18/4/2022", "Hello", "19/4/2022"]}

输出:

    No. Date
    1   17/4/2022
    2   18/4/2022
    3   Hello
    4   19/4/2022

之后df["Date"] = pd.to_datetime(df["Date"], infer_datetime_format=True, errors="coerce")

“你好”变成了“NaT”。

输出:

No. Date
1   17/4/2022
2   18/4/2022
3   NaT
4   19/4/2022

我怎么知道有一个“你好”?

我如何知道 pd.to_datetime 更改了哪些值?

原文链接:https://stackoverflow.com//questions/71919809/how-do-i-know-what-have-been-changed-by-pd-to-datetime

回复

我来回复
  • Niqua的头像
    Niqua 评论

    有一种方法可以实现您想要做的事情 – 您可以按索引加入两个数据框:

    df_1.join(df_2, on = df_1.index, lsuffix = '_df_1', rsuffix = '_df_2')
    

    所以结果表可能看起来像这样

    Joined tables

    2年前 0条评论
  • Abhyuday Vaish的头像
    Abhyuday Vaish 评论

    正如您所提到的,您想知道更改并仅获取字符串。你可以这样做:

    import pandas as pd
    
    df = pd.DataFrame({"No.": [1, 2, 3, 4],
          "Date": ["17/4/2022", "18/4/2022", "Hello", "19/4/2022"]})
    df['Changes'] = df['Date'].apply(lambda x: x if x.isalpha() else "No Change")
    

    输出:

       No.       Date    Changes
    0    1  17/4/2022  No Change
    1    2  18/4/2022  No Change
    2    3      Hello      Hello
    3    4  19/4/2022  No Change
    
    2年前 0条评论