我有一个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)
答案 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)