pandas基础——文件读取与写入、基本数据结构、常用基本函数、排序、总结练习

本文介绍了Pandas的基础知识,包括文件读写、Series和DataFrame数据结构的操作,如属性访问、数据操作及排序,以及常用的基本函数如head、unique等。此外,还探讨了Pandas的索引对齐特性和数据处理技巧。
摘要由CSDN通过智能技术生成

pandas简单介绍和本系列说明

pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。
pandas is a fast, powerful, flexible and easy to use open source data analysis and manipulation tool,built on top of the Python programming language.

进入官网可以看到现在最新的版本是1.0.3,之后代码也就使用1.0.3的pd咯。此系列主要参考Pandas官方文档和由Datawhale主办的一期Joyful-Pandas,结合自己使用pandas的一些体会进行扩展,最后还有个人对问题和练习的解答。使用到的数据集可以在此下载
在这里插入图片描述

#从清华镜像拉装1.0.3版本的Pandas
!pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pandas==1.0.3
import pandas as pd
#查看Pandas版本
pd.__version__
'1.0.3'

一般使用python安装库,会用到pip install libName。这会在Python的官方源pypi.python.org/pypi 下载,有时会因为超时会抛异常无法下载成功。所以可以选择一些比较稳定速度比较快的国内镜像来下载python库。

这里选择用清华的镜像是因为大多数时候直接pip install 一个库会比较慢,国内常用阿里、豆瓣、中科大的镜像网址如下,可以自行选择替换。

https://mirrors.aliyun.com/pypi/simple/
https://pypi.douban.com/simple
https://mirrors.ustc.edu.cn/pypi/web/simple

一、csv、txt、xls或xlsx文件读取与写入

1. 读取与写入csv格式

#读取
df = pd.read_csv('work/table.csv')
df.head()#默认查看前五行,想看n行的话就在括号内加数字,如前20行 df.head(20)

#写入
df.to_csv('data/new_table.csv')
#df.to_csv('data/new_table.csv', index=False) #保存时除去行索引
#df.to_csv('data/new_table.csv', header=False) #保存时除去列索引

2. 读取与写入txt格式

#读取
df_txt = pd.read_table('work/table.txt') #可设置sep分隔符参数
#df_txt = pd.read_table('work/table.txt',sep='\t') #其实上行代码就是默认分隔符为\t,即空四个字符
df_txt

#写入
df_txt.to_csv('data/new_table.txt', index=False)

打开写入的‘new_table.txt’,就会发现格式和之前不太一样,使用‘,’分隔。因此读取时可以使用df_txt = pd.read_table('data/new_table.txt',sep=',')。如果要保持一致,也就是分隔符为\t,那么可以使df_txt.to_csv('data/new_table.txt', index=False,sep='\t')

3. 读取与写入xls或xlsx格式

#读取
!pip install -i https://pypi.tuna.tsinghua.edu.cn/simple xlrd
import xlrd
#需要安装xlrd包
df_excel = pd.read_excel('work/table.xlsx')
df_excel.head()

#写入
!pip install -i https://pypi.tuna.tsinghua.edu.cn/simple openpyxl
import openpyxl
#需要安装openpyxl
df.to_excel('data/new_table2.xlsx', sheet_name='Sheet1')

打开写入的‘new_table2.xlsx’,就会发现格式和之前不太一样,因为没有删除行索引。如果要保持一致,那么可以使df.to_excel('data/new_table.xlsx', sheet_name='Sheet1', index=False),就可以得到“无添加”。

二、基本数据结构

在pandas中有两类非常重要的数据结构,即序列Series和数据框DataFrame。Series类似于numpy中的一维数组,除了通吃一维数组可用的函数或方法,而且其可通过索引标签的方式获取数据,还具有索引的自动对齐功能;DataFrame类似于numpy中的二维数组,同样可以通用numpy数组的函数和方法,而且还具有其他灵活应用。

1. Series

对于一个Series,其中最常用的属性为值(values),索引(index),名字(name),类型(dtype)。访问Series属性就直接一个点+属性名。Series有相当多的方法可以调用,也是就直接一个点+调用方法。下面上代码:

Series创建
#创建一个Series,这里是随机的,故得到的结果每次也不一样
s = pd.Series(np.random.randn(5),index=['a','b','c','d','e'],name='这是一个Series',dtype='float64')
s
a   -1.871256
b   -1.048312
c   -1.068401
d    0.168282
e   -1.606225
Name: 这是一个Series, dtype: float64
访问Series属性
#访问Series属性
s.values
s.name
s.index
s.dtype
#取Series中某一索引的值
s['a']
Series调用方法
#Series有相当多的方法可以调用,使用方式和属性一样,直接一个点+调用方法
print([attr for attr in dir(s) if not attr.startswith('_')])
print(s.mean())
['T', 'a', 'abs', 'add', 'add_prefix', 'add_suffix', 'agg', 'aggregate', 'align', 'all', 'any', 'append', 'apply', 'argmax', 'argmin', 'argsort', 'array', 'asfreq', 'asof', 'astype', 'at', 'at_time', 'attrs', 'autocorr', 'axes', 'b', 'between', 'between_time', 'bfill', 'bool', 'c', 'clip', 'combine', 'combine_first', 'convert_dtypes', 'copy', 'corr', 'count', 'cov', 'cummax', 'cummin', 'cumprod', 'cumsum', 'd', 'describe', 'diff', 'div', 'divide', 'divmod', 'dot', 'drop', 'drop_duplicates', 'droplevel', 'dropna', 'dtype', 'dtypes', 'duplicated', 'e', 'empty', 'eq', 'equals', 'ewm', 'expanding', 'explode', 'factorize', 'ffill', 'fillna', 'filter', 'first', 'first_valid_index', 'floordiv', 'ge', 'get', 'groupby', 'gt', 'hasnans', 'head', 'hist', 'iat', 'idxmax', 'idxmin', 'iloc', 'index', 'infer_objects', 'interpolate', 'is_monotonic', 'is_monotonic_decreasing', 'is_monotonic_increasing', 'is_unique', 'isin', 'isna', 'isnull', 'item', 'items', 'iteritems', 'keys', 'kurt', 'kurtosis', 'last', 'last_valid_index', 'le', 'loc', 'lt', 'mad', 'map', 'mask', 'max', 'mean', 'median', 'memory_usage', 'min', 'mod', 'mode', 'mul', 'multiply', 'name', 'nbytes', 'ndim', 'ne', 'nlargest', 'notna', 'notnull', 'nsmallest', 'nunique', 'pct_change', 'pipe', 'plot', 'pop', 'pow', 'prod', 'product', 'quantile', 'radd', 'rank', 'ravel', 'rdiv', 'rdivmod', 'reindex', 'reindex_like', 'rename', 'rename_axis', 'reorder_levels', 'repeat', 'replace', 'resample', 'reset_index', 'rfloordiv', 'rmod', 'rmul', 'rolling', 'round', 'rpow', 'rsub', 'rtruediv', 'sample', 'searchsorted', 'sem', 'set_axis', 'shape', 'shift', 'size', 'skew', 'slice_shift', 'sort_index', 'sort_values', 'squeeze', 'std', 'sub', 'subtract', 'sum', 'swapaxes', 'swaplevel', 'tail', 'take', 'to_clipboard', 'to_csv', 'to_dict', 'to_excel', 'to_frame', 'to_hdf', 'to_json', 'to_latex', 'to_list', 'to_markdown', 'to_numpy', 'to_period', 'to_pickle', 'to_sql', 'to_string', 'to_timestamp', 'to_xarray', 'transform', 'transpose', 'truediv', 'truncate', 'tshift', 'tz_convert', 'tz_localize', 'unique', 'unstack', 'update', 'value_counts', 'values', 'var', 'view', 'where', 'xs']
-1.0851822894643066

2. DataFrame

数据框DataFrame更为复杂,使用方法也更多了。

DataFrame创建
#创建一个DataFrame
df = pd.DataFrame({
   'col1':list('abcde'),'col2':range(5,10),'col3':[1.3,2.5,3.6,4.6
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值