如何使用python或scala将非标准的csv文件读入数据框

姆迪夫

我下面有一个要使用python或scala处理的数据集采样:

FWD,13032009:09:01,10.56| FWD,13032009:10:53,11.23| FWD,13032009:15:40,23.20
SPOT,13032009:09:04,11.56| FWD,13032009:11:45,11.23| SPOT,13032009:12:30,23.20
FWD,13032009:08:01,10.56| SPOT,13032009:12:30,11.23| FWD,13032009:13:20,23.20| FWD,13032009:14:340,56.00
FWD,13032009:08:01,10.56| SPOT,13032009:12:30,11.23| FWD,13032009:13:20,23.20

每行都将拆分为多个较小的字符串,这些字符串可以进一步拆分。

我正在寻找的是一种生成具有以下内容的RDD或数据帧的有效方法:

FWD,13032009:09:01,10.56 
FWD,13032009:10:53,11.23
FWD,13032009:15:40,23.20
SPOT,13032009:09:04,11.56
FWD,13032009:11:45,11.23
SPOT,13032009:12:30,23.20
FWD,13032009:08:01,10.56
SPOT,13032009:12:30,11.23
FWD,13032009:13:20,23.20
FWD,13032009:14:340,56.00
FWD,13032009:08:01,10.56
SPOT,13032009:12:30,11.23
FWD,13032009:13:20,23.20

请注意,效率越高越好,因为生产中的总行数可能高达一百万

非常感谢你。

伯纳德·L

假设您正在读取一个csv文件,则可以将每一行读取到一个列表中。展平值,然后将它们作为单独的行进行处理。

将文件读入列表-一百万行应该不会太多:

import csv
import itertools

import pandas as pd

with open('test.csv','r') as f:
    reader = csv.reader(f, delimiter = '|')
    rows = list(reader)

从一个列表中展平并拆分-Pythonitertools标准库中的出色库返回了一个生成器,该生成器有助于提高内存效率。

flat_rows = itertools.chain.from_iterable(rows)
list_rows = [i.strip().split(',') for i in flat_rows]

现在,嵌套列表list_rows为您提供了一个干净且格式化的列表,pandas如果您要创建,可以将其发送到dataframe

list_rows
>>
[['FWD', '13032009:09:01', '10.56'],
 ['FWD', '13032009:10:53', '11.23'],
 ['FWD', '13032009:15:40', '23.20'],
 ['SPOT', '13032009:09:04', '11.56'],
 ['FWD', '13032009:11:45', '11.23'],
 ['SPOT', '13032009:12:30', '23.20'],
 ['FWD', '13032009:08:01', '10.56'],
 ['SPOT', '13032009:12:30', '11.23'],
 ['FWD', '13032009:13:20', '23.20'],
 ['FWD', '13032009:14:340', '56.00'],
 ['FWD', '13032009:08:01', '10.56'],
 ['SPOT', '13032009:12:30', '11.23'],
 ['FWD', '13032009:13:20', '23.20']]

df = pd.DataFrame(list_rows)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将元数据嵌入非标准文件中?

将结构化但非标准结构的文本文件转换为R中的数据框

如何为Weka标准化此非标准CSV文件?

处理具有非标准内容的CSV文件

将数据集与Python中的非标准概率分布进行比较

Google Cloud Functions:使用非标准密钥将GCS JSON文件加载到BigQuery中

使用非标准格式的类型在Spark中加载CSV

使用SSIS以非标准格式加载CSV

如何通过python替换非标准json文件中的值

如何使用CMake安装非标准的构建目标输出文件?

如何使用SBCL Common Lisp从文件加载非标准字符?

Python WAV格式解析:非标准数据帧输出

在Python中读取非标准文本文件

如何使用Python Pandas将JMP * .jmp文件读入Pandas数据框

如何使用非标准格式将字符串转换为 .Net DateTime 对象?

Python & Pandas:如何以非标准方式分组

如何使用DateTimeFormatter解析非标准月份名称

如何使用xpath定位非标准html标签?

如何使用导航属性和非标准键?

使用 Python 解析非标准 HL7 XML

在非标准位置使用SSL支持构建Python

非标准目录中的.desktop文件

如何获取非标准的php设置?

如何将压缩的(gz)CSV文件读入dask数据框?

从 Python 非标准库导入模块

使用tidyr :: expand的非标准评估

在 html 中使用非标准字体

如何使用非标准运算符将字符向量的元素用作函数的符号自变量:=运算符

Python:如何从非标准的柯西分布中随机采样,从而使用不同的参数?