python - 使用 Pandas read_csv 将多列作为数组字段读取
问题描述
我正在读取一个 csv 文件,并希望将最后 3 列作为数组导入。
数据看起来像:
01/01/2020, 100.5, Apple, 0.1, 0.2, 0.3
02/01/2020, 373.0, Banana, 7.5, 6.6, 2.1
03/01/2020, 552.9, Orange, 8.0, 1.2, 7.5
....
以前我通过定义数据的 dtype 使用 genfromtxt 使用 Numpy 管理这个:
mydtype = np.dtype([('Date', 'a10'),('Val', 'f8'),('Fruit', 'a10'),('ValArray', '3f8')
然后使用该 dtype 调用 numpy genfromtxt:
Data = np.genfromtxt('My input file', dtype=mydtype, delimiter=',', autostrip=True)
这给了我一个 Numpy 结构化数组,其中包含“Date”、“Val”、“Fruit”和“ValArray”字段,其中“ValArray”是一个数组数组。
现在我想使用 Pandas read_csv 执行相同的过程,但我发现它不像 Numpy 那样使用 dtype。
我定义了一个适合 Pandas 的 dtype:
myPandasdtype = {'Date': 'a10','Val':'f8','Fruit': 'a10', 'ValArray':'3f8'}
并将 Pandas read_csv 用作:
PData = PD.read_csv('My input file', dtype=myPandasdtype , sep=',', header=None)
但发现 Pandas 给了我一个包含日期索引、浮点字段、字符串字段和另外三个浮点字段的数据框。
但是,我希望将最后三个浮点字段读取为三个浮点数组,并使用 dtype 标签命名字段。
在熊猫中可以做到这一点吗?
解决方案
推荐阅读
- jupyter-notebook - Chrome 中的 Jupyter 笔记本
- vue.js - 带有 Bulma 下拉菜单的 Vue v-for
- google-apps-script - Google App Scripts OnEdit 触发器帮助避免“太多同时调用”
- ios - 按下按钮时奇怪的崩溃
- python - 如果单元格数据匹配,比较 2 个数据框列并在一个数据框中添加一个新列作为“是”或“否”
- javascript - 如何在不重新加载/刷新网页的情况下将数据插入 MongoDB 服务器并显示在 html 表上
- batch-file - 如何检查文件夹大小并将其与已知大小进行比较并回显通过或失败 - 批处理脚本?
- r - 可视化优化路径直到在 R 中收敛
- c - 与 printf() 一起使用的格式字符串一次为 789:01.234
- python - 计算行数,其中只有特定的列是 True