如何在 Python Pandas 中将列的一部分转换为日期?

霍乱

我在 Python 中有 Pandas 数据框,如下所示:

col1
------
00121088645
90110544547
02031134543
110588
  • 我需要从 col1 中的每个值中取出前 6 个元素并基于它创建日期并使用此日期创建新列“birthday_date”
  • 如果 col1 中的值以 00 开头,则它是 2000 而不是 1900,例如 90 是 1990 而不是 1890 或任何其他。我们计算生日日期,所以它只能是 1900 + 或 2000+ :)
  • 意识到!如果 col1 中的值没有 11 个元素,则 col2 中的值必须为“0”

例如:

  • 00121088645 = 2000-12-10
  • 90110544547 = 1990-11-05
  • 02031134543 = 2002-03-11

因此,我需要:

col1          birthday_date
-------------------------      
00121088645 | 2000-12-10
90110544547 | 1990-11-05
02031134543 | 2002-03-11
110588      | 0 
tdy

使用str访问器获取前 6 个字符,然后pd.to_datetime()format='%y%m%d'和一起使用errors='coerce'

df['birthday_date'] = pd.to_datetime(df['col1'].str[:6], format='%y%m%d', errors='coerce')

#           col1 birthday_date
# 0  00121088645    2000-12-10
# 1  90110544547    1990-11-05
# 2  02031134543    2002-03-11
# 3       110588           NaT

如果愿意,用 0fillna(0)替换的NaT

df['birthday_date'] = pd.to_datetime(df['col1'].str[:6], format='%y%m%d', errors='coerce').fillna(0)

请注意,我假设col1包含字符串(否则不会有任何前导零)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在python中将api响应的一部分转换为完整的json

如何将行转换为列但仅适用于python中表的一部分?

如何使用Pandas按日期对列的一部分求和?

如何从 Python 中的 Pandas DataFrame 中删除字符串的一部分

如何在python中将数组的一部分存储在不同的数组中

如何在python中将字符串用作变量的一部分

如何将列表的一部分转换为python中的嵌套列表?只使用内置函数

如何使用python-pandas将行的一部分读取到数组中?

尝试将特定列乘以Pandas DataFrame(Python)中多行的一部分

如何在Python中将变量值用作变量名的一部分?

在 Python 中将 2D 列表的一部分转换为 int

将第一行的一部分和第二行的一部分用作python pandas中的列标题

如何在 Pandas 数据帧的一部分上使用 std 函数?

如何在 Pandas (python) 日期列中将 00:00 (HH:MM) 的时间转换为 24:00?

如何在C#中将字符串的一部分转换为小写

如何用Python替换String SQLite3列的一部分

根据另一列(Python Pandas)的值在列中添加一部分字符串

Python3:如何在循环中将列表分成两部分,一个是 20%,左边是另一部分

如何在python中删除网址的一部分?

如何在python中分离json的一部分?

如何在Python中复制二进制文件的一部分?

如何在python数组中查找字符串的一部分

如何在python中绘制圆弧(圆的一部分)

Python:如何在列表中找到与元素名称的一部分匹配的元素

如何在python列表中删除字符串的一部分?

如何在 Python 中跳过单个循环迭代的一部分

如何在python中删除文本的一部分

如何在python中提取一部分字符串?

如何在 Python 中替換文件路徑的一部分