当前位置: 首页 > 面试题库 >

如何使两个不同的日期格式在单列中唯一?

何超英
2023-03-14
问题内容

我不了解其中的一栏,但是同一栏中有两种不同的格式。

df['Date'] = [6/24/2019,6/14/2019,2019-09-06 00:00:00,6/14/2019,6/14/2019]

我想对其进行进一步处理,所以我希望以单一格式进行处理。

df['Date'] = [6/24/2019,6/14/2019,9/06/2019,6/14/2019,6/14/2019]

我已经尝试过这样的事情

data['New_date'] = pd.to_datetime(df['Date'], format = '%m/%d/%Y')

但这给了我这个错误

ValueError:时间数据6/24/2019与指定的格式不匹配


问题答案:

使用to_datetime两种格式和errors='coerce'用于NaT如果没有被其他的匹配和替换缺失值SeriesSeries.combine_firstSeries.fillna他们,最后转换为由字符串Series.dt.strftime

s1 = pd.to_datetime(data['Date'], format='%Y-%d-%m %H:%M:%S', errors='coerce')
s2 = pd.to_datetime(data['Date'], format = '%m/%d/%Y', errors='coerce')

#2 possible solutions
data['new'] = s1.fillna(s2).dt.strftime('%m/%d/%Y')
data['new'] = s1.combine_first(s2).dt.strftime('%m/%d/%Y')
print (data)
                  Date         new
0            6/24/2019  06/24/2019
1            6/14/2019  06/14/2019
2  2019-09-06 00:00:00  06/09/2019
3            6/14/2019  06/14/2019
4            6/14/2019  06/14/2019


 类似资料:
  • 问题内容: 我在移动设备上使用本地数据库,在我的数据库中,我的date字段具有column name 。我的列值是这种格式,我想获取给定日期的数据。我在下面的数据库列和值中尝试过的确切查询是什么 ** RN_CREATE_DATE 2012-07-27 11:04:34 2012-05-28 10:04:34 2012-07-22 09:04:34 ** 但没有找到结果,请帮我解决这个问题。 问题

  • 我得到了一个日期字段格式为的对象,我将其映射到一个对象中,如下所示: 现在我需要将这个对象作为json响应发送,但我需要它采用不同的格式: 如果我更改字段,反序列化失败: 如何使用不同的模式进行序列化

  • 问题内容: 我有一个带有大量行的表。一列包含格式为’%m /%d /%Y’的日期,我想将它们全部更改为格式’%Y-%m-%d’ 通常:更新表设置mydate =‘6’ 我猜是行不通的,因为日期总是在变化。在这种情况下,我该怎么办? 问题答案: 如果日期字符串中的字段正确地用零填充,则可以将它们提取为子字符串:

  • 问题内容: 比方说,我们有这个表: 我想做的是: 计算开始日期和结束日期之间的学生人数! 问题答案: 看起来您需要使用基本的聚合: 我分别在开始日期和结束日期字段周围使用了> =和<=。可以根据需要随意更改为>或<。从您的问题中并不清楚是要在特定字段之间还是要检查这两个字段之间的范围。

  • 我有两个字符串格式的日期:说,格式为。比较日期1和日期2的相等性的最佳方法是什么?我不关心时间,只关心日、年、月。我应该将它们转换为即时并进行比较吗?

  • 问题内容: 我想要一个开始日期和结束日期之间的日期列表。 结果应为所有日期的列表,包括开始日期和结束日期。 问题答案: 一次添加一天直到达到结束日期: 实现自己的迭代器也可以做到这一点并不难,那就更好了。