Python Pandas日期时间转换为日期

13
我想要将一个 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

有人能指导我朝正确的方向吗?

这里可能是一个不错的开始--http://pandas.pydata.org/pandas-docs/stable/timeseries.html - inbinder
你应该只需要执行 df = pd.read_csv("TestData.csv", parse_dates=['DATE_TIME']),而不是你试图使用的所有那些代码。 - EdChum
3个回答

16

您可以使用.dt方法访问Pandas系列的datetime方法(类似于访问字符串方法使用.str的方式)。对于您的情况,您可以提取您的日期时间列的日期:

df['PUDATE'].dt.date

3
以下是翻译后的内容: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'”的错误提示。 该代码创建了一个空的数据框,并从名为“TestData.csv”的CSV文件中读取数据到该数据框中,其中包括一个名为“ORIGIN_EXP_PKP_DATE_TIME”的列。 接着,代码将这个列转换成日期时间格式并存储在一个名为“PUDATE”的新列中。 最后,代码尝试从“PUDATE”列中提取日期并将其存储在名为“test”的新列中,但出现了错误提示。 - Krisjay

2

我认为你需要指定格式,例如:

df['PUDATE2']=datetime.datetime.date(df['PUDATE'], format='%Y%m%d%H%M%S')

所以,您只需要知道您正在使用哪种格式。


1
运行下面列出的代码时,我得到了以下错误 AttributeError: type object 'datetime.datetime' has no attribute 'datetime'df['PUDATE2']=datetime.datetime.date(df['PUDATE'], format='%Y-%m-%d') df['PUDATE2'].head() - Krisjay

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接