Ряды всегда по столбцам
Таким образом, вы не можете установить строку для серии Pandas datetime
и использовать методы Pandas datetime
на ней без проблем,Вы можете придумать обходные пути для преобразования строки в datetime
серию каждый раз, когда вы используете ее .Но это неэффективно и не использует векторизацию.
Вы можете иметь либо индекс строки, либо индекс столбца как datetime
.
datetime
index: транспонируйте свойфрейм данных
Самое чистое решение - это перенести ваш фрейм данных и использовать индекс datetime
:
from io import StringIO
x = StringIO("""Date,2018-07-31,2018-08-31,2018-09-30
Value,12,23,45""")
df = pd.read_csv(x)
df = df.set_index('Date').T
df.index = pd.to_datetime(df.index)
print(df)
Date Value
2018-07-31 12
2018-08-31 23
2018-09-30 45
print(df.index.month)
Int64Index([7, 8, 9], dtype='int64')
datetime
столбцы
Если вам нужны столбцы как datetime
, вы можете использовать set_index
, а затем pd.to_datetime
:
df = df.set_index('Date').rename_axis('')
df.columns = pd.to_datetime(df.columns)
print(df)
2018-07-31 2018-08-31 2018-09-30
Value 12 23 45
print(df.columns.month)
Int64Index([7, 8, 9], dtype='int64')