pandas基础知识

>>>import pandas as pd
>>>import numpy as np
>>>import matplotlib.pyplot as plt

一、创建对象

  1. 通过传入一个list对象生成一个Series,索引python会默认生成一个整数索引。
>>>data = pd.Series([1,2,3,4,5,6])

>>>data
Out[9]: 
0    1
1    2
2    3
3    4
4    5
5    6
dtype: int64
  1. 通过传递一个 numpy array ,时间索引以及列标签来创建一 个 DataFrame
#pd.date_range生成时间序列
>>>date = pd.date_range('20130102',periods = 6)

>>>date
Out[11]: 
DatetimeIndex(['2013-01-02', '2013-01-03', '2013-01-04', '2013-01-05',
               '2013-01-06', '2013-01-07'],
              dtype='datetime64[ns]', freq='D')
>>>df = pd.DataFrame(np.random.randn(6,4),index = date,columns=list('ABCD'))

>>>df
Out[15]: 
                   A         B         C         D
2013-01-02 -1.282088 -0.673884 -0.260690  0.833551
2013-01-03 -1.080849  0.492077 -0.894507 -2.557578
2013-01-04 -0.577583  0.855389  0.180534  0.040379
2013-01-05  0.736744  1.221697  1.386126  0.065165
2013-01-06 -0.979877 -2.400284 -0.127889  0.221825
2013-01-07 -0.638150  1.503574 -1.440053  0.733958
  1. 通过传递一个字典对象来生成一个DataFrame:
>>>data = pd.DataFrame({
   'A':1,'B':pd.Timestamp('20200708'),
							  'C':pd.Series(1,index = list('ABCD')),
							  'D':np.array([3]*4),
							  'E':'foo',
							  'F':pd.Categorical(['test','train','test','train'])})

>>>data
Out[19]: 
   A          B  C  D    E      F
A  1 2020-07-08  1  3  foo   test
B  1 2020-07-08  1  3  foo  train
C  1 2020-07-08  1  3  foo   test
D  1 2020-07-08  1  3  foo  train
  1. 查看不同列的数据类型:
>>>data.dtypes
>>>
A             int64
B    datetime64[ns]
C             int64
D             int32
E            object
F          category
dtype: object
  1. 如果你使用的是 IPython,使用 Tab 自动补全功能会自动识别所有的属性以及自 定义的列,下图中是所有能够被自动识别的属性的一个子集:
>>>df2.<TAB> 

二、查看数据

  1. 查看 DataFrame 中头部和尾部的行:
>>>data
>>>Out[23]: 
   A          B  C  D    E      F
A  1 2020-07-08  1  3  foo   test
B  1 2020-07-08  1  3  foo  train
C  1 2020-07-08  1  3  foo   test
D  1 2020-07-08  1  3  foo  train

>>>data.head()
>>>Out[24]: 
   A          B  C  D    E      F
A  1 2020-07-08  1  3  foo   test
B  1 2020-07-08  1  3  foo  train
C  1 2020-07-08  1  3  foo   test
D  1 2020-07-08  1  3  foo  train

>>>data.tail(3)
>>>Out[25]: 
   A          B  C  D    E      F
B  1 2020-07-08  1  3  foo  train
C  1 2020-07-08  1  3  foo   test
D  1 2020-07-08  1  3  foo  train
  1. 显示索引、列和底层的 numpy 数据:
>>>data.index
>>>Out[26]: Index(['A', 'B', 'C', 'D'], dtype='object')
>>>data.columns
>>>Out[27]: Index(['A', 'B', 'C', 'D', 'E', 'F'], dtype='object')
>>>data.values
>>>Out[29]: 
array([[1, Timestamp('2020-07-08 00:00:00'), 1, 3, 'foo', 'test'],
       [1, Timestamp('2020-07-08 00:00:00'), 1, 3, 'foo', 'train'],
       [1, Timestamp('2020-07-08 00:00:00'), 1, 3, 'foo', 'test'],
       [1, Timestamp('2020-07-08 00:00:00'), 1, 3, 'foo', 'train']],
      dtype=object)
  1. describe() 函数对于数据的快速统计汇总:
>>>data=pd.DataFrame(np.random.randn(6,4),index =date)
>>>Out[33]: 
                   0         1         2         3
2013-01-02 -0.426116 -0.850394 -1.316567 -0.443378
2013-01-03  0.157614  1.492726  0.157182 -1.589600
2013-01-04  0.381877 -1.393736  1.044404 -0.638821
2013-01-05  0.439913  0.127987  0.234469 -0.461405
2013-01-06  1.243603  0.027430  0.318905  1.570608
2013-01-07  0.808266  1.103845  0.707078 -0.175796
>>>data.describe()
>>>Out[30]: 
              0         1         2         3
count  6.000000  6.000000  6.000000  6.000000
mean   0.434193  0.084643  0.190912 -0.289732
std    0.568238  1.103315  0.810776  1.033291
min   -0.426116 -1.393736 -1.316567 -1.589600
25%    0.213680 -0.630938  0.176503 -0.594467
50%    0.410895  0.077708  0.276687 -0.452392
75%    0.716178  0.859880  0.610035 -0.242691
max    1.243603  1.492726  1.044404  1.570608
  1. 对数据的转至
>>>data.T
>>>Out[36]: 
   2013-01-02  2013-01-03  2013-01-04  2013-01-05  2013-01-06  2013-01-07
0   -0.426116    0.157614    0.381877    0.439913    1.243603    0.808266
1   -0.850394    1.492726   -1.393736    0.127987    0.027430    1.103845
2   -1.316567    0.157182    1.044404    0.234469    0.318905    0.707078
3   -0.443378   -1.589600   -0.638821   -0.461405    1.570608   -0.175796
  1. 按轴进行排序
#sort_index(ascending = False)按逆序排
>>>data.sort_index(axis = 1,ascending=False)
>>>Out[37]: 
                   3         2         1         0
2013-01-02 -0.443378 -1.316567 -0.850394 -0.426116
2013-01-03 -1.589600  0.157182  1.492726  0.157614
2013-01-04 -0.638821  1.044404 -1.393736  0.381877
2013-01-05 -0.461405  0.234469  0.127987  0.439913
2013-01-06  1.570608  0.318905  0.027430  1.243603
2013-01-07 -0.175796  0.707078  1.103845  0.808266
  1. 按值进行排序
>>>data = pd.DataFrame(np.random.randn(6,4),index = date,columns = list('ABCD'))

>>>data
>>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值