为什么 str split 没有按预期工作?
why str split is not working as expected?
我的数据框列为 -
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
为什么会这样?
这可能是由于 'Date' 列中存在不同的数据类型:
所以使用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())
的输出来验证
我的数据框列为 -
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
为什么会这样?
这可能是由于 'Date' 列中存在不同的数据类型:
所以使用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())
的输出来验证