python pandas日期时间转换为日期
Posted
技术标签:
【中文标题】python pandas日期时间转换为日期【英文标题】:python pandas date time conversion to date 【发布时间】:2016-01-27 12:59:07 【问题描述】:我希望将日期时间转换为 pandas
datetime
系列的日期。
我已经列出了下面的代码:
df = pd.DataFrame()
df = pandas.io.parsers.read_csv("TestData.csv", low_memory=False)
df['PUDATE'] = pd.Series([pd.to_datetime(date) for date in df['DATE_TIME']])
df['PUDATE2'] = datetime.datetime.date(df['PUDATE']) #Does not work
谁能指引我正确的方向?
【问题讨论】:
这里可能是一个好的开始--pandas.pydata.org/pandas-docs/stable/timeseries.html 您应该可以只使用df = pd.read_csv("TestData.csv", parse_dates=['DATE_TIME'])
而不是您尝试使用的所有代码
【参考方案1】:
您可以使用 .dt
方法访问 Pandas 系列的 datetime
方法(与使用 .str
访问字符串方法的方式类似。对于您的情况,您可以提取您的日期日期时间列为:
df['PUDATE'].dt.date
【讨论】:
df = pd.DataFrame() df=pandas.io.parsers.read_csv("TestData.csv",low_memory=False) df['PUDATE'] = \ pd.Series([pd.to_datetime(date) for date in df['ORIGIN_EXP_PKP_DATE_TIME']]) df['test'] = df['PUDATE'].dt.date
AttributeError: 'Series' object has no attribute 'dt' 是我运行上述代码时遇到的错误【参考方案2】:
这是从 pandas 获取月份日期的简单方法
#create a dataframe with dates as a string
test_df = pd.DataFrame('dob':['2001-01-01', '2002-02-02', '2003-03-03', '2004-04-04'])
#convert column to type datetime
test_df['dob']= pd.to_datetime(test_df['dob'])
# Extract day, month , year using dt accessor
test_df['DayOfMonth']=test_df['dob'].dt.day
test_df['Month']=test_df['dob'].dt.month
test_df['Year']=test_df['dob'].dt.year
【讨论】:
【参考方案3】:我认为您需要指定格式,例如
df['PUDATE2']=datetime.datetime.date(df['PUDATE'], format='%Y%m%d%H%M%S')
所以你只需要知道你使用的是什么格式
【讨论】:
运行下面列出的代码我得到以下错误AttributeError: type object 'datetime.datetime' has no attribute 'datetime'
df['PUDATE2']=datetime.datetime.date(df['PUDATE'], format='%Y-%m-%d') df['PUDATE2'].head()
以上是关于python pandas日期时间转换为日期的主要内容,如果未能解决你的问题,请参考以下文章
将 JSON 时间戳字符串转换为 pandas 数据框中的 python 日期
使用 Pandas 将数据框中的 Python 对象列转换为没有日期的时间
如何使用空值将字符串转换为日期时间 - python,pandas?
Python/Pandas/Datetime:将列中的整个列表转换为日期时间