gpt4 book ai didi

python - 如何将日期格式字符串转换为 bool True 并将其他格式转换为 False?

转载 作者:太空宇宙 更新时间:2023-11-04 09:31:57 30 4
gpt4 key购买 nike

import pandas
import numpy
df=pandas.DataFrame({'col1':['a','b','c','b'],'col2':['N','2018-03-12 15:35',numpy.NaN,'2017-06-12 15:35'],'col3':['c','b','b','b']})
print(df)

上面脚本的输出是:

  col1              col2 col3
0 a N c
1 b 2018-03-12 15:35 b
2 c NaN b
3 b 2017-06-12 15:35 b

对于 col2 列,我想将所有 yyyy-mm-dd hh:mm 格式字符串转换为 bool True,其他为False,保持Na值不变。
预期结果如下:

  col1              col2 col3
0 a False c
1 b True b
2 c NaN b
3 b True b

怎么做?提前致谢!

最佳答案

创建 2 个掩码 - 首先转换 to_datetime s 与 errors='coerce' 和测试 Series.notna并测试此列:

m1 = pd.to_datetime(df['col2'], errors='coerce').notna()
m2 = df['col2'].notna()

然后传给numpy.select - 但必须将 NaN 转换为 None:

df['col2'] = np.select([m1, m2], [True, False], None)
print(df)
0 a False c
1 b True b
2 c None b
3 b True b

或者使用DataFrame.loc :

df.loc[m2, 'col2'] = m1
print(df)
col1 col2 col3
0 a False c
1 b True b
2 c NaN b
3 b True b

关于python - 如何将日期格式字符串转换为 bool True 并将其他格式转换为 False?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55396932/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com