将<m8 [ns]转换为=“”int =“”

时间:2016-12-13 15:53:58

标签: python pandas numpy

=“”

我正在使用pandas,其中一列的类型为{{ 1}}。我在其中存储了“天”,例如5天,3天等。

我想将此“天数”列从<m8[ns]转换为<m8[ns],我该怎么做?

1 个答案:

答案 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