如何转换日期

时间:2019-01-16 10:28:55

标签: python-3.x pandas datetime

我有一个csv文件,并将该文件导入anaconda。结果为我提供了一个表,该表具有用于日期(年,月,日)的3列,而我想将这些列仅变成一个。我能怎么做 ?其次,如何将这些日期与工作日值相关联

例如,我将1969、01、01分为3列,我想要一个新的1969-01-01列。之后,我想要一个新的专栏说1969-01-01是“星期三”

查看我的代码

import pandas as pd
df = pd.read_csv("birthday_data.csv")
cols = ['year','month','day']
df['datetime'] = pd.to_datetime(df[cols])
df['name'] = df['datetime'].dt.weekday_name
df = df.drop(cols, axis=1)

2 个答案:

答案 0 :(得分:0)

使用to_datetime通过Series.dt.weekday_name转换为日期时间:

df = pd.DataFrame({
         'year':[1969,2001],
         'month':[1,2],
         'day':[1,3],

})

cols = ['year','month','day']
df['datetime'] = pd.to_datetime(df[cols])
df['name'] = df['datetime'].dt.weekday_name
df = df.drop(cols, axis=1)
print (df)
    datetime       name
0 1969-01-01  Wednesday
1 2001-02-03   Saturday

或者:

cols = ['year','month','day']
dates = pd.to_datetime(df[cols])
names = dates.dt.weekday_name
df = pd.DataFrame({'datetime':dates, 'name':names})

答案 1 :(得分:0)

如果您使用read_csv来读取excel,则可以使用date_parser参数。您可以查看更多信息here

dateparse = lambda x: pd.datetime.strptime(x, '%Y-%m-%d')
#Pass the column names from your excel sheet to below (year, month, date)
df = pd.read_csv(inputfile, parse_dates={'datevalue': ['year', 'month', 'day']}, date_parser=dateparse)