您好,登录后才能下订单哦!
这篇文章主要讲解了“Pandas数据结构的基础用法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Pandas数据结构的基础用法”吧!
head()与tail()用于快速预览Series与DataFrame,默认显示5条数据,也可以指定显示数据的数量。
属性与底层数据
Pandas可以通过多个属性访问元数据:
shape:输出对象的轴维度,与ndarray一致
轴标签:
Series:Index(仅有此轴)
DataFrame:Index(行)与列
Pandas对象(Index、Series、DataFrame)相当于数组的容器,用于存储数据、执行计算。大部分类型的底层数组都是numpy.ndarray。不过,Pandas与第三方支持库一般都会扩展NumPy类型系统,添加自定义数组。
.array属性用于提取Index或Series里的数据。
array一般指ExtensionArray。
提取NumPy数组,用to_numpy()或numpy.asarray()。
Series与Index的类型是ExtensionArray时,to_numpy()会复制数据,并强制转换值。
to_numpy()可以控制numpy.ndarray生成的数据类型。以带时区的datetme为例,NumPy未提供时区信息的datetime数据类型,Pandas则提供了两种表现形式:
1.一种是带Timestamp的numpy.ndarray,提供了正确的tz信息。
2.另一种是datetime64[ns],这也是一种numpy.ndarray,值被转化为UTC,但去掉了时区信息。
时区信息可以用dtype=object保存
或用dtype=’datetime64[ns]’去除。
提取DataFrame里的原数据稍微有点复杂。DataFrame里所有列的数据类型都一样时,DataFrame.to_numpy()返回底层数据:
DataFrame为同构型数据时,Pandas直接修改原始ndarray,所以修改会直接反应在数据结构里。对于异构型数据,即DataFrame列的数据类型不一样时,就不是这种操作模式了,与轴标签不同,不能为值的属性赋值。
这里我们要注意处理异构型数据时,输出结果ndarray的数据类型适用于涉及的各类数据。若DataFrame里包含字符串,输出结构的数据类型就是object。要是只有浮点数或整数,则输出结果的数据类型是浮点数。
以前,Pandas推荐用Series.values或DataFrame.values从Series或DataFrame里提取数据。
但Pandas改进了此功能,现在,推荐用.array或to_numpy提取数据,别再用.values了。
.values有以下2个缺点:
1.Series含扩展类型时,Series.values无法判断到底是改返回NumPy array,还是返回Extension array。而Series.array则只返回ExtensionArray,且不会复制数据。Series.to_numpy则返回NumPy数组,其代价是需要复制、并强制转换数据的值。
2.DataFrame含多种数据类型时,DataFrame.values会复制数据,并将数据的值强制转换同一种数据类型,这是一种代价较高的操作。DataFrame.to_numpy()则返回NumPy数组,这种方式更清晰,也不会把DataFrame里的数据都当作一种类型。
借助numexpr与bottleneck支持库,Pandas可以加速特定类型的二进制数值与布尔操作。
处理大型数据集时,这两个支持库特别有用,加速效果也非常明显。numexpr使用智能分块、缓存与多核技术。bottleneck是一组专属cython例程,处理含nans值的数组时,特别快。
请看下面这个例子(DataFrame包含100列×10万行数据):
这两个支持库默认为启用状态,可用以下选项设置:
感谢各位的阅读,以上就是“Pandas数据结构的基础用法”的内容了,经过本文的学习后,相信大家对Pandas数据结构的基础用法这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。