将列类型从对象转换为日期格式-python

难道难道

我已经串联了两个数据帧,串联之前的列类型是日期时间,但是串联之后,列类型更改为对象,而当我导出为ex​​cel时,列类型完全改变了!

这是两个数据框:

df_last_month:

项目编号 状态 项目命名 碳纤维 VPC 一氧化碳
一种 计划 DH 2021-01-26 2021-03-16 2021-11-16 2023-10-10
冷冻的 DH 2017-12-01 2018-12-18 2019-07-26 2022-02-18
C 计划 DH 2017-12-01 2018-12-18 2019-07-26 2022-02-18
d 计划 H 2017-12-01 2018-12-18 2019-07-26 2022-02-18

df_current_month:

项目编号 状态 项目命名 碳纤维 VPC 一氧化碳
一种 计划 DH 2021-01-10 2021-03-16 2021-09-16 2023-10-10
冷冻的 DH 2017-12-01 2018-12-18 2019-07-26 2022-02-18
Ë 已完成 DH 2017-12-01 2018-12-18 2019-07-26 2022-02-18
F 已完成 H 2017-12-01 2018-12-18 2019-07-26 2022-02-18
H 已完成 H 2017-12-01 2018-12-18 2019-07-26 2022-02-18

我已经将df1和df2与某些条件串联在一起,这是代码:

df_last_month = df_last_month.set_index('project number')
df_current_month = df_current_month.set_index('project number')
df3 = pd.concat([df_last_month,df_current_month],sort=False)

df3a = df3.stack().groupby(level=[0,1]).unique().unstack(1).copy()

df3a.loc[~df3a.index.isin(df_last_month.index),'update_project'] = 'new'     

df3a.loc[~df3a.index.isin(df_current_month.index),'update_project'] ='deleted'

idx = df3.stack().groupby(level=[0,1]).nunique() 
df3a.loc[idx.mask(idx<=1).dropna().index.get_level_values(0),
'update_project'='modified'

df3a['update_project'] = df3a['update_project'].fillna('same')

这是输入:

在此处输入图片说明

我想做的是:在column(CF,CO,MA,VPC)中,我有两种格式:

  • 第一:[2021-01-26 00:00:00]
  • 第二个:[2021-01-26 00:00:00,2021-01-10 00:00:00]
  1. 我想删除时间。

  2. 然后当我导出到excel时,我也将使用相同的格式,我的意思是[2021-01-26]或[2021-01-26,2021-01-10],但是现在我在excel中有了它:

在此处输入图片说明

这是我的代码:

import pandas as pd
import numpy as np
from datetime import datetime, date
# Classify date column by format type
df['format'] = 1
df.loc[df['CF'].astype(str).str.contains(','), 'format'] = 2
df['new_date'] = pd.to_datetime(df['CF'])

# Convert to datetime with two different format settings
df.loc[df.format == 1, 'new_date'] = pd.to_datetime(df.loc[df.format == 1, 'CF'], format = '%Y-%d-%m %H:%M:%S').dt.strftime('%Y-%m-%d')
df.loc[df.format == 2, 'new_date'] = pd.to_datetime(df.loc[df.format == 2, 'CF'], format = '%m/%d/%Y %H:%M:%S,%m/%d/%Y %H:%M:%S').dt.strftime('%Y-%m-%d,%m/%d/%Y')
print(df)

我有这个错误: 在此处输入图片说明

有什么建议 ?谢谢你的帮助

冈加尼斯

在连接两个数据框之前如何将Datetime列转换为字符串。这样,您就可以获得所需的输出。

from pandas.api.types import is_datetime64_any_dtype
    
for col in df_current_month.columns:
        if is_datetime64_any_dtype(df_current_month[col]):
            df_current_month[col] = df_current_month[col].dt.strftime('%Y-%m-%d')

df_current_month['CF'].head()
0    2021-10-01
1    2017-01-12
2    2017-01-12
3    2017-01-12
4    2017-01-12
Name: CF, dtype: object

不幸的是,您必须对两个数据框都执行此操作。

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将python中的数据框列对象转换为日期时间格式

来自分类Dev

将Python数据框列转换为日期格式

来自分类Dev

Python:将列转换为日期格式并提取顺序

来自分类Dev

将奇怪的Python日期格式转换为可读日期

来自分类Dev

将导入的日期从.txt转换为日期格式python

来自分类Dev

Python:将MySQL日期时间转换为格式的日期时间

来自分类Dev

将数据类型对象DD-Mon-YYYY转换为Python中的数据格式

来自分类Dev

将数据类型对象DD-Mon-YYYY转换为Python中的数据格式

来自分类Dev

将python数据框数据类型从对象转换为日期时间的问题

来自分类Dev

在python中将对象转换为日期时间格式

来自分类Dev

将时间戳列转换为KDB中的Python日期时间格式

来自分类Dev

将格式 1st, 2nd..nth-Month-YYYY 的日期字符串转换为 python 日期对象

来自分类Dev

使用Python将数字转换为日期格式

来自分类Dev

无法将日期时间转换为 python 可读格式

来自分类Dev

将日期和时间从字符串格式转换为Python日期时间对象:ValueError:时间数据“ ... pm”与格式“ ...%p”不匹配

来自分类Dev

Python:将毫秒转换为日期时间对象

来自分类Dev

使用strptime将字符串转换为具有时区偏移的python日期类型对象

来自分类Dev

如何将Python dict转换为特定类型的对象?

来自分类Dev

将字符串转换为类型对象-Python

来自分类Dev

Python - Pandas - 将格式为 2018-01-01 的日期列转换为时间戳的字符串版本

来自分类Dev

Python 3,无法将日期时间戳转换为日期时间对象,类型错误:需要一个整数(得到类型 str)

来自分类Dev

Python数据框将日期时间列转换为秒

来自分类Dev

Python使用for循环将多列转换为日期时间

来自分类Dev

新列将日期转换为月年熊猫python

来自分类Dev

Python将列转换为日期时间不起作用

来自分类Dev

Python 日期格式转换为英国

来自分类Dev

将python对象转换为String,对其进行编辑,然后转换回原始类型的对象

来自分类Dev

Python-将字符串类型转换为日期时间类型

来自分类Dev

Python-将2月29日的日期转换为日期时间对象

Related 相关文章

  1. 1

    如何将python中的数据框列对象转换为日期时间格式

  2. 2

    将Python数据框列转换为日期格式

  3. 3

    Python:将列转换为日期格式并提取顺序

  4. 4

    将奇怪的Python日期格式转换为可读日期

  5. 5

    将导入的日期从.txt转换为日期格式python

  6. 6

    Python:将MySQL日期时间转换为格式的日期时间

  7. 7

    将数据类型对象DD-Mon-YYYY转换为Python中的数据格式

  8. 8

    将数据类型对象DD-Mon-YYYY转换为Python中的数据格式

  9. 9

    将python数据框数据类型从对象转换为日期时间的问题

  10. 10

    在python中将对象转换为日期时间格式

  11. 11

    将时间戳列转换为KDB中的Python日期时间格式

  12. 12

    将格式 1st, 2nd..nth-Month-YYYY 的日期字符串转换为 python 日期对象

  13. 13

    使用Python将数字转换为日期格式

  14. 14

    无法将日期时间转换为 python 可读格式

  15. 15

    将日期和时间从字符串格式转换为Python日期时间对象:ValueError:时间数据“ ... pm”与格式“ ...%p”不匹配

  16. 16

    Python:将毫秒转换为日期时间对象

  17. 17

    使用strptime将字符串转换为具有时区偏移的python日期类型对象

  18. 18

    如何将Python dict转换为特定类型的对象?

  19. 19

    将字符串转换为类型对象-Python

  20. 20

    Python - Pandas - 将格式为 2018-01-01 的日期列转换为时间戳的字符串版本

  21. 21

    Python 3,无法将日期时间戳转换为日期时间对象,类型错误:需要一个整数(得到类型 str)

  22. 22

    Python数据框将日期时间列转换为秒

  23. 23

    Python使用for循环将多列转换为日期时间

  24. 24

    新列将日期转换为月年熊猫python

  25. 25

    Python将列转换为日期时间不起作用

  26. 26

    Python 日期格式转换为英国

  27. 27

    将python对象转换为String,对其进行编辑,然后转换回原始类型的对象

  28. 28

    Python-将字符串类型转换为日期时间类型

  29. 29

    Python-将2月29日的日期转换为日期时间对象

热门标签

归档