<10分钟上手pandas>学习笔记

本文系10 Minutes to pandas文档的个人学习摘要,不包含全部内容。

image

0. 数据结构介绍

pandas使用两种重要的数据结构:SeriesDataFrame

- Series

是一种类似于一维数组的对象。可以使用数字索引和字符索引。我们可以通过valuesindex属性获取序列的索引和值列表。

创建:

image

我们还可使用python的字典来初始化创建一个series,字典的键作为序列的索引,值作为对应的值。

在pandas中,series一个最重要的功能是:在算术运算中会自动对齐相同索引的数据。

image
image

s.value_counts() 统计元素出现次数

序列有一个**'str' **属性,它可以使用常见的string函数,如 s.str.lower()

- DataFrame

DataFrame是pandas中最重要、使用最频繁的数据结构,这次的学习笔记内容也都是对这种数据结构进行操作。它是一种表格型数据,既有行索引又有列索引,本质是二维Series。创建DataFrame的方法很多 ,最简单的是传入一个列表或numpy数组组成的字典


下面着重介绍dataframe的相关操作

1. 创建dataframe:

image

查看df的信息可以选用这几个函数: df.head(), df.tail(), df.describe(),,其中**describe() **显示df的各种统计信息(平均数,中位数,标准差,最值,分位数),在数据挖掘处理数据时会用到。df.info()显示其属性信息

image

2. 检索数据

dataframe的检索可以从两方向进行:行和列。我们可以使用行列标签进行检索。

  • 2.1 Getting:
    df['a'] <==> df.a 返回a列数据值,是序列类型
    df[0:3] 返回前三行,dataframe类型

  • 2.2 按标签检索:df.loc[rows_number, columns_list]

image

因为行默认数字索引,这里1:4应理解为label,不是position。

  • 2.3 按位置检索: df.iloc[row_number, col_number] ,要求给出的参数必须是整型,即第几行第几列。
image
  • 2.4 布尔索引,常用这种方法来筛选数据
image
  • 2.5 Setting:df.at[] & df.iat()类似于 df.loc[] & df.iloc[]。个人理解是专门用来修改值得吧(虽然loc/iloc也可以 (:

3. 缺失数据处理

pandas使用 np.nan(not a numeric)标识缺失数据,NaN不会参与后续计算。

  • 3.1 直接丢弃

    df.dropna(how='any', axis = 0)

axis:指定丢弃行(0)或列(1)

how:可选all或any, 默认any。与axis共同作用

举个例子, df.dropna(how='any', axis = 0) 只要某行数据中有NaN,那么就删除这一行。all要求全部是NaN才删除。

  • 3.2 填充

df.fillna(value=x)用x填充缺少的数据。还可以使用插值法、Imputer或回归预测来填充这些数据。

  • 3.3 检查df中有哪些NaN:pd.isna(df) 返回一个布尔型的DataFrame

4. 操作

  • 4.1 统计信息: df.mean() / sum() / min()/ max()/ std()/ var()/ corr()/ cov()。
image
  • 4.2 函数式:apply函数,比如 df.apply(np.cumsum()), df.apply(lambda x: x.max() - x.min())
image

5. 合并

  • 5.1 concat函数,C风格 pd.concat([df1, df2])

  • 5.2 join函数,SQL风格

  • 5.3 append, df.append(df1, ignore_index=True)

  • 分组, 分组在数据分析中很常见
    df.groupby('a') , 和SQL里的groupby有点像。
    groupby函数处理涉及到一下几个步骤:

  1. 按给定条件划分数据为组
  2. 对每个组应用函数处理
  3. 将处理结果组合到某种数据结构

关于分组的知识,以后详谈~嘻嘻

6. 后续的时间序列,分类,Plotting的内容接着写。

简书小白,第一次写文章,欢迎大家指正。bye~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容