【问题标题】:why str split is not working as expected?为什么 str split 没有按预期工作?
【发布时间】:2021-10-08 14:59:32
【问题描述】:

我的数据框列为 -

Date
2025-01-21 00:00:00
2021-12-05 00:00:00
12-MAY-2020/18-SEP-2020
15-JUN-2021/20-JUL-2021
2020-12-05 00:00:00

我正在使用以下代码从以“/”分隔的日期中提取第一个日期-

df["Date2"] = df["Date"].str.split('/', expand=True)[0]

我期待输出 -

Date2
2025-01-21 00:00:00
2021-12-05 00:00:00
12-MAY-2020
15-JUN-2021
2020-12-05 00:00:00

但是,输出如下-

Date2
nan
nan
12-MAY-2020
15-JUN-2021
nan

为什么会这样?

【问题讨论】:

    标签: python pandas string strsplit


    【解决方案1】:

    这可能是由于“日期”列中存在不同的数据类型:

    所以使用astype() 来确保类型:

    df["Date2"] = df["Date"].astype(str).str.split('/', expand=True)[0]
    #OR
    df["Date2"] = df["Date"].astype(str).str.split('/').str[0]
    

    df的输出:

        Date                        Date2
    0   2025-01-21 00:00:00         2025-01-21 00:00:00
    1   2021-12-05 00:00:00         2021-12-05 00:00:00
    2   12-MAY-2020/18-SEP-2020     12-MAY-2020
    3   15-JUN-2021/20-JUL-2021     15-JUN-2021
    4   2020-12-05 00:00:00         2020-12-05 00:00:00
    

    Note:你可以检查print(df['Date'].map(type).value_counts())的输出来验证

    【讨论】:

      猜你喜欢
      • 2014-08-04
      • 2021-01-03
      • 2018-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-20
      相关资源
      最近更新 更多