时间序列
通过date_range函数生成序列并加入数据中,例如创建从2019年9月21日开始的连续4天的时间序列。使用pandas包中的read_csv()方法读取之前保存的学生数据,更新数据后可以看到生成的时间序列已经加入到了数据框中。
创建
myTime=pd.date_range('2019/9/21', periods=4, freq='7D')print('产生的时间序列是:\n',myTime)df10=df1print('设置索引前的df1是:\n',df1)df10.index=myTimeprint('设置索引后的df10是:\n',df10)
产生的时间序列是:DatetimeIndex(['2019-09-21', '2019-09-28', '2019-10-05', '2019-10-12'], dtype='datetime64[ns]', freq='7D')设置索引前的df1是:name no age genderid0 Tom 001 16 m1 Lily 002 16 f2 Cindy 003 15 f3 Petter 004 16 m设置索引后的df10是:name no age gender2019-09-21 Tom 001 16 m2019-09-28 Lily 002 16 f2019-10-05 Cindy 003 15 f2019-10-12 Petter 004 16 m
时间序列
查询
print('\n根据时间序列索引得到的值\n',df10.loc["2019-09-21":"2019-09-30",['gender','age','name']])
根据时间序列索引得到的值gender age name2019-09-21 m 16 Tom2019-09-28 f 16 Lily
查询总结
1.pandas的索引* 注意df.iloc、df.loc、df[]的区别1.四种索引形式:使用位置做索引使用列表做索引使用切片做索引使用bool类型索引2.df.loc与df.iloc2.1 选取行df.loc 是基于索引值的,切片是左闭右闭的df.iloc 是基于位置的,切片是左闭右开的2.2 选取行和列[,] 逗号左边索引行,逗号右边索引行(左值和右值均可为空)df.loc[,]df.iloc[,] 方括号内必须均为数字如df.loc[0:5,'年龄'] 等同于 df['年龄'].iloc[0:5]2.3 选取列df['列名'] df['列名','列名2',...]df.loc[df['年龄']>18]3.df.loc与df3.1 语法上:相同点:选取行时,即df.loc[] 等同于 df[]不同点:切片是左闭右闭,df切片是左闭右开的4.总结df*选取列(主要):df['列名']选取单列,df['列名','列名2',...]选取多列,选取行:df是df.loc的选取行的一种简单形式df.loc功能强大:主要用于便捷选取行和列,如df.loc[0:3,['性别','年龄']],不需要多次[],还可以对字符类型的列切片df.iloc*选取行: 当索引不为0,1,2,3...时,如设置时间为索引,仍然可采用df.iloc[n]的形式
类型转换
DataFrame由于具有相对复杂的结构,故其数据类型转换与其他类型略有不同。
print("DataFrame转ndarray\n",df10.values,"\nDataFrame转series\n",df10['gender'])
DataFrame转ndarray[[0 'Tom' 1 16 'm'][1 'Lily' 2 16 'f'][2 'Cindy' 3 15 'f'][3 'Petter' 4 16 'm']]DataFrame转series2019-09-21 m2019-09-28 f2019-10-05 f2019-10-12 mFreq: 7D, Name: gender, dtype: object
