1 创建 Series 和 DataFrame
- DataFrame 和 Series 是 Pandas 最基本的两种数据结构;
- 在 Pandas 中,Series 是一维容器,Series 表示 DataFrame 的每一列;
- 可以把 DataFrame 看作由 Series 对象组成的字典,其中 key 是列名,值是 Series;
- Series 类似于 Python 中的列表,但是它的每个元素的数据类型必须相同。
1.1 创建 Series
创建 Series 的最简单方法是传入一个 Python 列表;
创建 Series 时,可以通过 index 参数来指定行索引;
1.2 创建 DataFrame
可以使用字典来创建 DataFrame
创建 DataFrame 时可以指定列的顺序和行索引
2 Series 常用操作
2.1 Series 常用属性
加载本地的csv文件:
使用 DataFrame 的
loc
属性获取数据集里的一行,就会得到一个Series对象打印这一个Series对象,左边是列名(行索引),右边是这一列对应的值
可以通过
index
和values
属性获取行索引和值每一个Series的值是一个
ndarray
对象DataFrame的
keys()
方法,作用和Series的index
属性一样常用属性汇总:
属性 说明 loc 使用索引值取子集 iloc 根据行索引的位置取值 T Series 的转置矩阵 shape 数据的维数 size Series 中元素的数量 values Series的值
2.2 Series 常用方法
针对数值型的Series,可以进行以下常见计算:
通过
value_counts()
方法,可以返回不同值的条目数量通过
count()
方法可以返回有多少非空值通过
describe()
方法打印描述信息其它常用方法:
方法 说明 append 连接两个或多个 Series corr 计算与另一个 Series 的相关系数 cov 计算与另一个 Series 的协方差 describe 计算常见统计量 drop_duplicates 返回去重之后的 Series equals 判断两个 Series 是否相同 get_values 获取 Series 的值,作用与 values 属性相同 hist 绘制直方图 isin Series 中是否包含某些值 min 返回最小值 max 返回最大值 mean 返回算术平均值 median 返回中位数 mode 返回众数 quantile 返回指定位置的分位数 replace 用指定值代替 Series 中的值 sample 返回 Series 的随机采样值 sort_values 对值进行排序 to_frame 把 Series 转换为 DataFrame unique 去重返回数组
2.3 Series 的布尔索引
手动创建布尔值列表,对Series进行索引,返回Series对应于布尔值列表中为True的位置的元素;
筛选年龄大于平均年龄的科学家
2.4 Series 的运算
Series和数值型变量计算时,变量会与Series中的每个元素逐一进行计算;
还可以有:
ages*2 ages+ages
元素个数不同的Series之间进行计算,会根据索引进行。索引不同的元素最终计算的结果会填充成缺失值,用NaN表示;
Series之间进行计算时,数据会尽可能依据索引标签进行相互计算
3 DataFrame 常用操作
3.1 DataFrame 的常用属性和方法
DataFrame是Pandas中最常见的对象,Series数据结构的许多属性和方法在DataFrame中也一样适用;
3.2 DataFrame 的布尔索引
3.3 DataFrame 的运算
4 更改 Series 和 DataFrame
4.1 给行索引命名
加载数据文件时,如果不指定行索引,Pandas会自动加上从0开始的索引;
- 通过
set_index()
方法设置行索引名字
加载数据的时候,可以通过通过
index_col
参数,指定使用某一列数据作为行索引通过
reset_index()
方法可以重置索引
4.2 DataFrane 修改行名和列名
通过
rename()
方法对原有的行索引名和列名进行修改将
index
和columns
属性提取出来,修改之后,再赋值回去
4.3 添加、删除、插入列
通过
dataframe[列名]
添加新列调用
drop()
方法删除列使用
insert()
方法插入列
5 导出和导入数据
5.1 pickle文件
pickle文件简介:
- 如要保存的对象是计算的中间结果,或者保存的对象以后会在Python中复用,可把对象保存为
.pickle
文件; - pickle文件只能在Python中使用;
- 文件的扩展名可以是
.p
、.pkl
、.pickle
;
movie #%% scientists = pd.read_csv('data/scientists.csv') # 提取 'Name' 列 names = scientists['Name'] # 将 'Name' 列保存为 pickle 文件 names.to_pickle('output/scientists_name.pickle') # 要提前建好output文件夹 # 将整个 DataFrame 保存为 pickle 文件 scientists.to_pickle('output/scientists_df.pickle')
- 如要保存的对象是计算的中间结果,或者保存的对象以后会在Python中复用,可把对象保存为
可以使用
pd.read_pickle
函数读取.pickle
文件中的数据
5.2 CSV文件
CSV(逗号分隔值)是很灵活的一种数据存储格式
在CSV文件中,对于每一行,各列采用逗号分隔
除了逗号,还可以使用其他类型的分隔符,比如TSV文件,使用制表符作为分隔符
CSV是数据协作和共享的首选格式
# 将 'names' Series 保存为 CSV 文件 names.to_csv('output/scientists_name.csv') # 将整个 DataFrame 保存为 TSV 文件,分隔符为制表符 '\t' scientists.to_csv('output/scientists_df.tsv', sep='\t') # 将整个 DataFrame 保存为 CSV 文件,不包含行索引 scientists.to_csv('output/scientists_df_noindex.csv', index=False)
5.3 Excel文件
Pandas 读写 Excel 需要额外安装如下三个包:
- 注意:下载的位置一定要和PyCharm所使用的Anaconda环境一致,可以使用管理员身份打开Anaconda Prompt然后下载;
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple xlwt pip install -i https://pypi.tuna.tsinghua.edu.cn/simple openpyxl pip install -i https://pypi.tuna.tsinghua.edu.cn/simple xlrd
保存成Excel文件。Series这种数据结构不支持
to_excel()
方法,想保存成Excel文件,需要把Series转换成DataFrame;# 将 Series 转换为 DataFrame names_df = names.to_frame() # 导入 xlwt 库,用于写入 Excel 文件 import xlwt # 将 DataFrame 保存为 Excel 文件(.xls 格式),engine参数用于指定引擎 names_df.to_excel('output/scientists_name_df.xls', engine='openpyxl') # 将整个 DataFrame 保存为 Excel 文件,指定工作表名称为 'scientists',不包含行索引 scientists.to_excel('output/scientists_df.xlsx', sheet_name='scientists', index=False, engine='openpyxl')
使用
pd.read_excel()
读取Excel文件
5.4 其它数据格式
feather文件
- feather是一种文件格式,用于存储二进制对象
- feather对象也可以加载到R语言中使用
- feather格式的主要优点是在Python和R语言之间的读写速度要比CSV文件快
- feather数据格式通常只用中间数据格式,用于Python和R之间传递数据一般不用做保存最终数据
其他格式
导出方法 说明 to_clipboard 把数据保存到系统剪贴板,方便粘贴 to_dict 把数据转换成 Python 字典 to_hdf 把数据保存为 HDF 格式 to_html 把数据转换成 HTML to_json 把数据转换成 JSON 字符串 to_sql 把数据保存到 SQL 数据库