【问题标题】:pandas.to_csv .rstrip not parsing time date correctly. [Pandas] [Python]pandas.to_csv .rstrip 未正确解析时间日期。 [熊猫] [蟒蛇]
【发布时间】:2018-04-20 16:41:52
【问题描述】:

在我的 .csv 文件中遇到了一些问题。默认日期在我的 csv 文件中格式化为单元格内的1/12/2011 0:00,但是当我突出显示单元格时显示1/12/2011 12:00:00 AM。我要做的是从多个列中删除0:00 (12:00:00 AM)。我正在尝试使用.rstrip 电话,希望能纠正这个问题。下面是我的代码,它可以编译,但不会删除 .csv 文件中的 0:00now 1/12/2011 12:00:00 AM 默认值。我不确定如何解决这个问题,任何建议都会受到欢迎。谢谢。

第一次尝试:

df = pd.read_excel ('.xlsx', header=None)
df.to_csv('.csv', header=None, index=False)
dateparse = lambda x: parse(x).strftime('%m/%d/%Y %H:%M').rstrip(" 0:00")
df = pd.read_csv('.xlsx', index_col=[5,8,12], date_parser=dateparse)

第二次尝试:

df = pd.read_excel ('.xlsx', header=None)
df.to_csv('.csv', header=None, index=False)
dateparse = lambda x: parse(x).strftime('%m/%d/%Y %H:%M').rstrip(" 12:00:00 AM")
df = pd.read_csv('.xlsx', index_col=[5,8,12], date_parser=dateparse)

注意:如您所见,我正在从 .xlsx 转换为 .csv,并认为在 .csv 格式中更正日期会更容易。此外,在 .xlsx 文件中,日期列未按时间格式化,因此我不确定发生了什么。

【问题讨论】:

  • 为什么你不从日期字符串中取出 x[0,-5] 子字符串?

标签: python csv datetime date-formatting timedelta


【解决方案1】:

您可以首先将其从格式功能中排除,并使用dateutil.pareser 中的parse

from dateutil.parser import parse  
dateparse = lambda x: parse(x).strftime('%m/%d/%Y')

或者如果你想继续使用你的方法,那么小时格式是 2 位而不是 1,所以去掉 00:00 而不是 0:00 如下:

dateparse = lambda x: parse(x).strftime('%m/%d/%Y %H:%M').rstrip(" 00:00")

【讨论】:

  • 您好,我发现了一些可能有用的新信息。另外,我尝试了您的方法,但没有成功。对上面新获得的信息有什么建议吗?谢谢。 @iDrwish
  • 我编辑了从dateutil 导入parse 的答案。你能告诉我为什么它不起作用吗?
猜你喜欢
  • 2020-12-16
  • 2021-02-18
  • 2022-09-28
  • 2021-11-09
  • 2018-10-10
  • 2016-10-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多