独热编码即 One-Hot 编码,又称一位有效编码,其方法是使用N位状态寄存器来对N个状态进行编码,每个状态都由独立的寄存器位,并且在任意时候,其中只有一位有效。可以这样理解,对于每一个特征,如果它有m个可能值,那么经过独热编码后,就变成了m个二元特征。并且,这些特征互斥,每次只有一个激活。因此,数据会变成稀疏的。
pandas具有丰富的时间序列处理功能,对于时序问题我们经常需要按天、周、月、季度、年等进行数据统计,这里我们使用一个例子向大家展示一下pandas处理时序问题的强大能力。
Jupyter QtConsole 4.3.1
Python 3.6.2 |Anaconda custom (64-bit)| (default, Sep 19 2017, 08:03:39) [MSC v.1900 64 bit (AMD64)]
Type 'copyright', 'credits' or 'license' for more information
IPython 6.1.0 -- An enhanced Interactive Python. Type '?' for help.
import pandas as pd
df=pd.read_csv('AirPassengers.csv')#全美航空数据
df.head()
Out[5]:
TravelDate Passengers
0 1/1/1949 112
1 2/1/1949 118
2 3/1/1949 132
3 4/1/1949 129
4 5/1/1949 121
df['TravelDate']=pd.to_datetime(df['TravelDate'])#将TravelDate字段转化为日期类型
df['TravelDate'].head()
Out[8]:
0 1949-01-01
1 1949-02-01
2 1949-03-01
3 1949-04-01
4 1949-05-01
Name: TravelDate, dtype: datetime64[ns]
df=df.set_index('TravelDate') #将TravelDate字段设置为索引
df.head()
Out[10]:
Passengers
TravelDate
1949-01-01 112
1949-02-01 118
1949-03-01 132
1949-04-01 129
1949-05-01 121
df.index
Out[12]:
DatetimeIndex(['1949-01-01', '1949-02-01', '1949-03-01', '1949-04-01',
'1949-05-01', '1949-06-01', '1949-07-01', '1949-08-01',