pandas 读取所有表头_数据科学 | pandas数据导入与导出

本文详细介绍了pandas如何导入和导出各种格式数据,包括从list、dict、np.array到CSV、Excel、JSON,以及数据库如MySQL、PostgreSQL和MongoDB的操作,提供丰富的代码示例,帮助理解数据处理流程。
摘要由CSDN通过智能技术生成

7df49d7531764c752f2a90d720f543fb.png

作者:杨士锦 周岩 书生

编者按

当我们开始着手做一个数据分析项目时,选择和导入数据集是第一个步骤,而导出数据虽然非必需,但有时候我们也需要保存处理或者分析后的结果,方便下次使用。在pandas中,它已经为我们提供了很多不同格式数据的导入和导出方法,下面这篇文章将具体介绍一些较为常用的方法,包括excel、csv文件以及数据库的导入导出等。

数据导入和导出是pandas中很基础且重要的一个部分。pandas提供了很多不同格式数据的导入和导出方法,可以将其他格式数据转为DataFrame格式。我们可以将list、dict格式数据转为DataFrame格式,也可以从本地的csv、json等文本格式数据和sql、MongoDB等数据库中读取和保存数据等等。下面就分别以三大类介绍一些常见的数据格式的导入与导出。

下文中所有的示例代码都是在jupyter notebook中创作,还不太了解jupyter的小伙伴,可以先看看这篇文章哦:数据科学 | 始于Jupyter Notebooks:一份全面的初学者使用指南。

1 list、dict、np.array 格式数据

1.1 list

一般读取一个list,生成的结果如下:

c01afc2b27c494b3f2365d6ad8813f62.png

运行结果:

1b439e879eddb0027e9da838b1063b44.png

如果读取的list中的每个元素都是一个元组,会发生什么呢?

8254235178ab92e4485eb5943bf27c7c.png

运行结果:

3bd9d3d083e5f566507d99c21164179f.png

如果忽略columns的话,第二个list的值不是列名,而是默认生成索引名,如下:

3bd9d3d083e5f566507d99c21164179f.png

运行结果:

1592ba75c36d73f108608874d1d8625a.png

1.2 dict

这里我们以一个字典为数据,看下不同操作的结果有何不同。

4f1dc5ab18f9aa007bcd4f0ef479e203.png

直接调用DataFrame进行读取的话,生成的DataFrame结构如下:

02b358481e0346a181bc1aa741517755.png

运行结果:

de2432821fd64c443cea53ed07d85583.png

需要说明的是:from_dict这个方法只有在pandas 0.23版本后才有,如果在早期的版本如0.19中调用会出现报错。

如果我们想以a,b作为索引,以list中的每个值分别为一列怎么操作呢?

7280bd000bf2685e1f4cb3f53e794035.png

运行结果:

538f0f3620a7a32bee81399c285fbe9d.png

如果进一步想让a、b生成列的话,调用reset_index方法即可。

df389215d4e8f33a9252c9bae4ac3a36.png

运行结果:

7e9b2b3187458bad155956a8dad4dbeb.png

但是如果我们想把字典的key和value分别生成两列,如何操作呢?

一种方法是:

683f87a0644a9b5bbf0b5218abeda3bf.png

还有一种方法依然是利用from_dict,不过就需要将value中的list提前转化成字符串,然后再进行操作即可。

1.3 np.array

numpy是比pandas更底层一些的数据操作工具,pandas的很多操作也是基于numpy进行的,比如numpy就支持直接读取txt文件。比如有这样一个txt文件:

6c0edaf29b4c93e1b6629e59803c1748.png

一共有4行8列的数据,数据间用空格隔开,表头带有%,那么读取的时候可以用loadtxt函数进行导入:

ef2d7d5089a763ebe4b054c2a642e4df.png

运行结果:

1174e319364e314a83160b2708568355.png

可以看到数据自动剔除了表头,并且只用了其中指定的列。接下来就可以将array导入到pandas中:

e5d1059459e79abfe67c8b90187c3b86.png

我们就可以得到类似用list构建DataFrame的效果了:

6c23b5d4da5ffa78d267da2c61af54e0.png

1.4 其他方式

当然需要导入文本并不规则的时候,可以考虑直接利用python中的文件读取来一行一行的读取文件,然后利用json或者re等字符串处理包来处理数据,最后整合成DataFrame:

fa9ac03bbbbd6282a23e518c6ec45dc9.png

当然这个方法要结合具体的数据来看,这里就不展开介绍了。

2 文本格式数据

2.1 CSV文件

2.1.1 导入csv数据

常用参数解析:

381190cd0520e06e8558bc656adaad55.png

● filepath_or buffer: str, path object or file-like object。指定传入的文件路径,必须传入的参数。

● sep: str。指定分隔符,默认是逗号分隔符。

● header: int, list or

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值