【问题标题】:pandas: How to convert a string to datetime?pandas:如何将字符串转换为日期时间?
【发布时间】:2014-10-12 16:08:37
【问题描述】:

我有一个CSV file,我正在尝试使用以下代码将date 列转换为dd/mm/yyyy 格式,但我仍在努力使用unconverted data remains

CSV 文件中的一些示例数据记录 酒店,作者,评论,日期,总体,价值,房间,位置,清洁度,入住/前台,服务,商务,r9 in,everywhereman2 ,Old seattle getaway 这是旧世界的最佳体验。这是游览西雅图历史街区时的住宿地点。您就在渡轮附近的海滨和很棒的海鲜餐厅,并且仍然在步行距离之内,可以欣赏到美妙的蓝调和爵士音乐。这家酒店的工作人员非常出色,让您有宾至如归的感觉。早餐很棒。我们不必走很远就能喝上一杯好酒和一顿便餐,开始我们冒险的一天,进入美国最美丽的城市之一。这家酒店所在的区域可以轻松到达您想去的任何地方,并且仍然可以找到回去的路。我强烈推荐这家酒店,以便您下次访问西雅图。 ,2009 年 1 月 6 日,5,5,5,5,5,5,5,5,
在,RW53 ,位置!地点?从附近高速公路的房间看,2008 年 12 月 26 日,3,4,3,2,4,3,-1,-1,

你能帮我指出我的错误吗?

我正在阅读 RSS 中的文件,然后:

import time 
for end_date in rss['date']:
    end_date     = end_date.split(" ")
    end_date[-1] = end_date[-1][:4]
    end_date     = " ".join(end_date)
    conv         = time.strptime( end_date,"%b %d %Y" )
    time.strftime( "%d/%m/%Y", conv )
rss['date']

提前谢谢你。

【问题讨论】:

    标签: python datetime pandas


    【解决方案1】:

    我刚刚尝试了您的数据,以下对我有用,无需进行后处理:

    In [17]:
    
    df =pd.read_csv(r'c:\data\out.csv', parse_dates=['date'])
    df.dtypes
    
    Out[17]:
    hotel                          object
    author                         object
    review                         object
    date                   datetime64[ns]
    Overall                         int64
    Value                           int64
    Rooms                           int64
    Location                        int64
    Cleanliness                     int64
    Check in/front desk             int64
    Service                         int64
    Business                        int64
    r9                             object
    dtype: object
    

    【讨论】:

    • 谢谢。:) 如何将 csv 文件中的内容永久转换为 dd/mm/yyyy。
    • @miku 对不起,你是什么意思?
    • 如果您的意思是在写入 csv 时如何指定格式,那么您可以使用 to_csv 方法的 date_format 参数指定写入的日期格式。在这种情况下,它将是 date_format='%d/%m/%Y'
    • 抱歉,我的问题格式含糊:我的意思是,CSV 中已有数据,如何通过程序代码更改日期列的格式。
    • @miku 如果数据是字符串,并且您想在从 csv 加载后转换为日期时间,那么 pd.to_datetime(df['date'], '%d/%m/%Y') 应该可以工作,如果它已经是日期时间并且您想更改显示格式,那么您转换使用datetime.strftime 将日期时间转换为字符串,因此df['date_str'] = df['date'].apply(lambda x.strftime('%Y/%m/%d')) 应该可以工作。
    猜你喜欢
    • 2019-03-14
    • 1970-01-01
    • 2022-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多