【问题标题】:Converting Date Format in a Dataframe from a CSV File [duplicate]从 CSV 文件转换数据框中的日期格式 [重复]
【发布时间】:2019-11-23 05:54:35
【问题描述】:

我需要将 csv 文件的日期格式转换为正确的 pandas 格式,以便稍后对其进行排序。我当前的格式无法在 pandas 中合理交互,所以我不得不对其进行转换。

这是我的 csv 文件的样子:

ARTIST,ALBUM,TRACK,DATE
ARTIST1,ALBUM1,TRACK1,23 Nov 2019 02:08
ARTIST1,ALBUM1,TRACK1,23 Nov 2019 02:11
ARTIST1,ALBUM1,TRACK1,23 Nov 2019 02:15

到目前为止,我已经通过这样做成功地将其转换为 pandas 格式:

df= pd.read_csv("mycsv.csv", delimiter=',')
convertdate= pd.to_datetime(df["DATE"])
print convertdate

####

#Original date format: 23 Nov 2019 02:08
#Output and desired date format: 2019-11-23 02:08:00

但是,这只会更改整个“日期”列中的值。打印 csv 文件的数据框仍会输出原始的、未转换的日期格式。我需要将转换后的格式附加到源 csv 文件中。

我想要的输出将是

ARTIST,ALBUM,TRACK,DATE
ARTIST1,ALBUM1,TRACK1,2019-11-23 02:08:00
ARTIST1,ALBUM1,TRACK1,2019-11-23 02:11:00
ARTIST1,ALBUM1,TRACK1,2019-11-23 02:15:00

【问题讨论】:

    标签: python pandas csv dataframe


    【解决方案1】:

    read_csv 方法有很多选项。 确保以您想要的格式读取数据,而不是稍后修复它。

    df = pd.read_csv('mycsv.csv"', parse_dates=['DATE'])
    

    只需将要转换的列名传递给 parse_dates 参数即可。

    原始代码中有 2 个问题。 它不是原始数据框的一部分,因为您在转换后没有将其保存回列中。

    所以而不是:

    convertdate= pd.to_datetime(df["DATE"])
    

    使用:

    df["DATE"]= pd.to_datetime(df["DATE"])
    

    看在上帝的份上stop using python 2

    【讨论】:

      【解决方案2】:
      dateparse = lambda x: pd.datetime.strptime(x, '%Y-%m-%d %H:%M:%S')
      
      df = pd.read_csv('mycsv.csv', parse_dates=['DATE'], date_parser=dateparse)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-09-30
        • 2019-12-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-02-24
        相关资源
        最近更新 更多