我正在使用pandas,其中一列的类型为{{ 1}}。我在其中存储了“天”,例如5天,3天等。
我想将此“天数”列从<m8[ns]
转换为<m8[ns]
,我该怎么做?
答案 0 :(得分:4)
您所看到的dtype
是日期时间的numpy dtype,如果您只是希望这些日子然后使用dt.day
返回日期:
df['days'] = df['days'].dt.day
见这个例子:
In [124]:
import datetime as dt
import pandas as pd
df = pd.DataFrame({'dates':pd.date_range(dt.datetime(2016,1,1), periods=10)})
df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 10 entries, 0 to 9
Data columns (total 1 columns):
dates 10 non-null datetime64[ns]
dtypes: datetime64[ns](1)
memory usage: 160.0 bytes
In [125]:
df['dates'].dtype
Out[125]:
dtype('<M8[ns]')
In [126]:
df['day'] = df['dates'].dt.day
df
Out[126]:
dates day
0 2016-01-01 1
1 2016-01-02 2
2 2016-01-03 3
3 2016-01-04 4
4 2016-01-05 5
5 2016-01-06 6
6 2016-01-07 7
7 2016-01-08 8
8 2016-01-09 9
9 2016-01-10 10
In [127]:
df.dtypes
Out[127]:
dates datetime64[ns]
day int64
dtype: object