动手学数据分析pandas——TASK1:数据加载及探索性数据分析

115 阅读1分钟

读取数据

read_csv

  1. 变量名若无特殊需求可取df即dataframe
  2. 可使用相对路径也可使用绝对路径载入数据,推荐使用相对路径,方便把代码发给别人
  3. 若路径中含转义字符\,记得在路径字符串前加r
  4. 关于读取时的列名与行名的定义:image.png image.png

其他函数

image.png

查看数据

  1. df.info()#查看数据简介
  2. df.head()#查看前5行数据
  3. df.tail()#查看后5行数据
  4. df.sample()#查看随机5行数据
  5. df.isnull()##判断数据是否为空,为空的地方返回True,其余地方返回False
  6. df.shape # (100, 6) 查看行数和列数
  7. df.describe() # 查看数值型列的汇总统计,需要print
  8. df.dtypes # 查看各字段类型
  9. df.axes # 显示数据行和列名
  10. df.columns # 列名

数据选取

查看指定列

df['Q1']或df.Q1

选择多列

df[['team', 'Q1']] # 只看这两列,注意括号

df.loc[:, ['team', 'Q1']] # 和上一行效果一样

tips:df.loc[x, y]是一个非常强大的数据选择函数,其中x代表行,y代表 列,行和列都支持条件表达式,也支持类似列表那样的切片(如果要用 自然索引,需要用df.iloc[])

删除列

del df['Q2']

条件选择

单一条件

df[df.Q1 > 90] # Q1列大于90的

df[df.team == 'C'] # team列为'C'的

df[df.index == 'Oscar'] # 指定索引即原数据中的name

组合条件

df[(df['Q1'] > 90) & (df['team'] == 'C')] # and关系

df[df['team'] == 'C'].loc[df.Q1>90] # 多重筛选

排序

df.sort_values(by='Q1') # 按Q1列数据升序排列

df.sort_values(by='Q1', ascending=False) # 降序

df.sort_values(['team', 'Q1'], ascending=[True, False]) # team升序,Q1降序

df.sort_index(axis=1)# 让列索引升序排序

如何构造Dataframe和Series

image.png