Pandas 初体验

Pandas 初体验

pandas 主要提供了 Series 以及 DataFrame 两个数据结构来分别处理 1D 以及 2D 数据. DataFrame 的每一列都是一个 Series. 下面介绍一些 pandas 的常用方法. 库的导入遵循惯例:

import pandas as pd

数据读取

df = pd.read_table(filepath, sep='\t', header=None)

从文件 filepath 读入表格, 具体参数详见 pandas.read_table 文档.

  • sep: 设置分隔符
  • header: header 不设置为 None 的话, 默认会对 columns 进行推断, 建议使用 None.

DataFrame 传入字典:

df = pd.DataFrame({
	'A': [1, 2, 3],
	'B': [4, 5, 6],
	'C': [7, 8, 9]
})
# 结果
   A  B  C
0  1  4  7
1  2  5  8
2  3  6  9

DataFrame 传入 list:

# 注意和传入 dict 的区别
df = pd.DataFrame([
	[1, 2, 3],
	[4, 5, 6],
	[7, 8, 9]
])
# 结果
   0  1  2
0  1  2  3
1  4  5  6
2  7  8  9

数据访问

先假设表格为:

df = 
    A  B  C
R0  1  4  7
R1  2  5  8
R1  3  6  9   # 注意这里故意设置行 label 为 R1, 和上一行一样

访问行列数据有以下方法:

获取行数据

df.loc[row] # 访问 label 为 row 的行
df.loc[row, : ] # 获取 label 为 row 的行数据
df.iloc[idx] # 访问第 idx 行 (idx 为 0 ~ N 之间的整数)
df[startrow:endrow] # 获取 DataFrame 的特定范围内的行, startrow 和 endrow 为 index (整数)

获取列数据

df[col]  # 访问 label 为 col 的列
df[[col1, col2, ...]] # 获取指定列的数据

获取特定区域范围内的数据

# startrow 等均为 label
df.loc[startrow:endrow, startcolumn:endcolumn]

获取某个 cell 的数据

df.loc[row, col]  # row 和 col 均为 label
df.loc[row][col]  # row 和 col 均为 label

转换为 Numpy 数组

pandas 的版本会有要求, 具体见文档. 如果无法使用如下 API, 可能用 pip 对 pandas 升级:

pip install --upgrade -I pandas  # -I 表示 --ignore-installed

SeriesDataFrame 都存在 to_numpy() 方法.

df[col].to_numpy()  # 将 col 这一列转换为 Numpy 数组

属性访问

df.shape  # 输出表格大小
df.index = ['1', '2', ...] # 修改行标签
df.columns = ['A', 'B', ...] # 修改列标签

表格描述

df.describe() # 数据的统计信息, 比如每列数据的个数, 平均值, 标准差等.
df.head(5)  # 展示前 5 行
df.tail(5)  # 展示后 5 行
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值