Как конвертировать дату - PullRequest
0 голосов
/ 16 января 2019

У меня есть 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 голосов
/ 16 января 2019

Если вы используете read_csv для чтения Excel, тогда вы можете использовать аргумент date_parser. Вы можете увидеть больше информации здесь

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)
0 голосов
/ 16 января 2019

Используйте 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})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...