gpt4 book ai didi

python - 如何将 pandas.to_datetime 与 "strange"字符串格式一起使用

转载 作者:行者123 更新时间:2023-11-30 08:38:52 25 4
gpt4 key购买 nike

我正在尝试使用 pandas.to_datetime 将 pandas 数据帧的列从字符串类型转换为日期时间。col 的值具有以下格式:

Q1'17

其中“Q”是一年中的季度,“17”是 2017 年。

该列中还有 null 值(我可以删除日期为空的整行)。

我试图解决这个问题,消除季度并只考虑年份,但我无法以这种方式转换,例如,16 到 2016:

df_cpu["Launch_Date"] = [str(x) for x in df_cpu["Launch_Date"]]
df_cpu["Launch_Date"] = [x[3:5] for x in df_cpu["Launch_Date"]]
df_cpu["Launch_Date"] = [int(x) for x in df_cpu["Launch_Date"]]
df_cpu["Launch_Date"] = pd.to_datetime(df_cpu["Launch_Date"], format('%Y'))

即使这样也行不通:

df_cpu["Launch_Date"] = pd.to_datetime(df_cpu["Launch_Date"], format('Q*\'%Y'))

因为我收到此错误:

ValueError: ('Unknown string format:', "Q3'16")

我该如何解决这个问题?

我想要以下类型的输出:如果每个示例的值是“Q1'16”,我想要“01-01-2016”。

最佳答案

考虑:

1)提供的数据:

df_cpu = pd.DataFrame(["Q1'17","Q3'16"], columns=['Launch_Date'])

2) 启动日期列的长度始终为 5;

您可以使用pd.offsets.QuarterBegin()将季度添加到一年的第一天:

>> pd.to_datetime(df_cpu.Launch_Date.str[3:5],format='%y') + np.multiply(pd.offsets.QuarterBegin(startingMonth=1), df_cpu.Launch_Date.str[1:2].values.astype(int)-1)
0 2017-01-01
1 2016-07-01
Name: Launch_Date, dtype: datetime64[ns]

关于python - 如何将 pandas.to_datetime 与 "strange"字符串格式一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54791690/

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