【问题标题】:PANDAS coarse dates (month/year)PANDAS 粗略日期(月/年)
【发布时间】:2014-07-18 14:55:03
【问题描述】:

假设我正在查看找到 here 的 Rdataset acme.csv。如何使用适当粗略的日期导入它?由于没有指定日期,因此使用 parse_dates 将日期指定为当前日期(今天是 7 月 18 日)。我可以像表格一样只处理月/年,但继续使用 PANDAS 的日期功能吗?

import pandas as pd
url = 'http://vincentarelbundock.github.io/Rdatasets/csv/boot/acme.csv'
df = pd.read_csv(url, parse_dates=[1])
df.drop('Unnamed: 0', axis=1, inplace=True)

【问题讨论】:

  • 您可以从该文件中添加几行并预期结果。
  • 不可能有一个月。你也将永远有一天
  • 顺便说一句:您可以使用两列 - 首先是日期为datetime(使用其功能), second with date as string m/y`(在结果中显示)。

标签: python datetime pandas


【解决方案1】:

不要解析 read_csv() 中的日期,而是使用 to_datetimeformat

df['month'] = pd.to_datetime(df['month'], format='%m/%y')

或者您可以使用 lambda 在read_csv() 中使用该函数

df = pd.read_csv(url, parse_dates=['month'], date_parser=lambda x:pd.to_datetime(x, format='%m/%y'))

但您总是会在datetime 中获得一些日期。

顺便说一句:datetime 中,您也总是有time,但有时pandas 不会显示它。

print df['month'].head()
print df['month'].apply(lambda x:x.time()).head()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多