时间序列

通过date_range函数生成序列并加入数据中,例如创建从2019年9月21日开始的连续4天的时间序列。使用pandas包中的read_csv()方法读取之前保存的学生数据,更新数据后可以看到生成的时间序列已经加入到了数据框中。

创建

  1. myTime=pd.date_range('2019/9/21', periods=4, freq='7D')
  2. print('产生的时间序列是:\n',myTime)
  3. df10=df1
  4. print('设置索引前的df1是:\n',df1)
  5. df10.index=myTime
  6. print('设置索引后的df10是:\n',df10)
  1. 产生的时间序列是:
  2. DatetimeIndex(['2019-09-21', '2019-09-28', '2019-10-05', '2019-10-12'], dtype='datetime64[ns]', freq='7D')
  3. 设置索引前的df1是:
  4. name no age gender
  5. id
  6. 0 Tom 001 16 m
  7. 1 Lily 002 16 f
  8. 2 Cindy 003 15 f
  9. 3 Petter 004 16 m
  10. 设置索引后的df10是:
  11. name no age gender
  12. 2019-09-21 Tom 001 16 m
  13. 2019-09-28 Lily 002 16 f
  14. 2019-10-05 Cindy 003 15 f
  15. 2019-10-12 Petter 004 16 m

时间序列

查询

  1. print('\n根据时间序列索引得到的值\n',df10.loc["2019-09-21":"2019-09-30",['gender','age','name']])
  1. 根据时间序列索引得到的值
  2. gender age name
  3. 2019-09-21 m 16 Tom
  4. 2019-09-28 f 16 Lily

查询总结

  1. 1.pandas的索引
  2. * 注意df.ilocdf.locdf[]的区别
  3. 1.四种索引形式:
  4. 使用位置做索引
  5. 使用列表做索引
  6. 使用切片做索引
  7. 使用bool类型索引
  8. 2.df.locdf.iloc
  9. 2.1 选取行
  10. df.loc 是基于索引值的,切片是左闭右闭的
  11. df.iloc 是基于位置的,切片是左闭右开的
  12. 2.2 选取行和列
  13. [,] 逗号左边索引行,逗号右边索引行(左值和右值均可为空)
  14. df.loc[,]
  15. df.iloc[,] 方括号内必须均为数字
  16. df.loc[0:5,'年龄'] 等同于 df['年龄'].iloc[0:5]
  17. 2.3 选取列
  18. df['列名'] df['列名','列名2',...]
  19. df.loc[df['年龄']>18]
  20. 3.df.locdf
  21. 3.1 语法上:
  22. 相同点:选取行时,即df.loc[] 等同于 df[]
  23. 不同点:切片是左闭右闭,df切片是左闭右开的
  24. 4.总结
  25. df
  26. *选取列(主要):df['列名']选取单列,df['列名','列名2',...]选取多列,
  27. 选取行:dfdf.loc的选取行的一种简单形式
  28. df.loc
  29. 功能强大:主要用于便捷选取行和列,如df.loc[0:3,['性别','年龄']],不需要多次[],还可以对字符类型的列切片
  30. df.iloc
  31. *选取行: 当索引不为0,1,2,3...时,如设置时间为索引,仍然可采用df.iloc[n]的形式

类型转换

DataFrame由于具有相对复杂的结构,故其数据类型转换与其他类型略有不同。

  1. print("DataFrame转ndarray\n",df10.values,
  2. "\nDataFrame转series\n",df10['gender'])
  1. DataFramendarray
  2. [[0 'Tom' 1 16 'm']
  3. [1 'Lily' 2 16 'f']
  4. [2 'Cindy' 3 15 'f']
  5. [3 'Petter' 4 16 'm']]
  6. DataFrameseries
  7. 2019-09-21 m
  8. 2019-09-28 f
  9. 2019-10-05 f
  10. 2019-10-12 m
  11. Freq: 7D, Name: gender, dtype: object