一、Pandas基本数据结构

  1. pandas的作用是在Python中处理数据表。
    两种常用基本结构:
    • Series,一堆数据,与numpy中的一对array类似。如excel里面的某一列。
    • DataFrame,二维的表格型数据结构
  2. series类型
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    import pandas as pd
    import numpy as np
    s = pd.Series([1,3,5,np.nan,6,'8']) #代码示意 空元素必须用np.nan
    print(s)

    #输出
    0 1
    1 3
    2 5
    3 NaN
    4 6
    5 8
    dtype: object

    s.index #索引数据的行标签
    s.values #值
    s[::2] #切片
  3. DataFrame类型
    1
    2
    3
    np.random.randint(0,10,(6,4))
    pd.DataFrame(np.random.randint(0,10,(6,4)), index=range(6), columns=list('ABCD'))
    #生成一个六行四列的表格,行0-5,列A-D,默认情况下,分别从0开始。

二、读取并查看数据

1
2
3
4
df = pd.read_excel('111.xlsx') #从excel里面读取数据,但文件要在和python文件同一个根目录里,或者使用完整文件目录,但要注意字符串转译,在前面加r或者反斜线。
df = pd.read_excel(r'C:\Users\111.xlsx')

data = pd.read_csv('222.csv', encoding='utf-8', engine='python') #从csv里面读取,防止报错
  1. 数据信息
    1
    2
    3
    df.info() #查看数据信息  
    df.head() #查看前几行,默认五行
    df.tail() #查看倒数几行,默认五行
  2. 下标、列标、数据
    1
    2
    df.index #查看下标,查看行名称  
    df.columns #查看列名称
  3. 行操作
    1
    2
    3
    4
    df.iloc[0:5] #取前五行,绝对顺序,从前往后的前五行  
    df.loc[0:5] #取index为0 1 2 3 4 5的行,如果没有,则取不出来。右边是闭区间。
    df = df.drop([30000]) #注意,这里是删除了index为30000的行,不是相对的
    df = df.drop([30000,31111])
  4. 列操作
    1
    2
    3
    4
    5
    6
    7
    df.columns
    df['名字'][:5] #查看名字这一列的前五个
    df[['名字','类型']][:5] #查看名字和类型这两列的前五个
    df['名称'] = range(len(df)) #添加一列
    df = df.drop('名称',axis=1) #删除 axis取1为列 取0为行 注意必须赋值给df
    df.loc[[index],[columns]] #通过标签选择数据
    df.loc[[1,2,3,4,5],['评分','名字']]
  5. 条件选择
    1
    2
    3
    df['产地']=='中国'[::2] #返回布尔值的series  
    df[df['产地']=='中国'][::2] #布尔索引,参考格式
    df[(df.产地=='中国')|(df.产地=='中国')&(df.评分>9)][::2] #多条件索引参考
  6. 排序
    1
    2
    df.sort_values(by='投票人数')[::2] #上小下大,升序
    df.sort_values(by='投票人数',ascending=False)[::2] #降序
  7. 基本统计分析
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    df.describe() #描述统计  
    df['投票人数'].max() #最大值
    df['投票人数'].min() #最小值
    df['投票人数'].mean() #平均值
    df['投票人数'].median() #中位数
    df['投票人数'].var() #方差
    df['投票人数'].std() #标准差
    df['投票人数'].sum() #求和
    df['投票人数'].corr() #相关系数,协方差
    len[df] #查看总共多少行
    df['产地'].unique() #产地取出来形成一行数组,不重复
    len(df['产地'].unique()) #算出来多少个产地
    df['年代'].value_counts()[:5] #计算单一年份出现的次数,默认从大到小排序,前五个
  8. 数据保存
    df.to_excel('111_@.xlsx',index=None)