Python 将具有不同数量的特定分隔符实例的CSV文件读取到数据帧中

Python 将具有不同数量的特定分隔符实例的CSV文件读取到数据帧中,python,pandas,csv,Python,Pandas,Csv,我有一个CSV文件,它使用分号;作为分隔符。然而,问题是分号的实例数量不同,即有时只有一个;,有时多个分号,如;;;;;;等等,考虑到数据相当大,我真的不知道 最简单的方法,显然是使用;要使用的是分隔符 data = pd.read_csv('my_file_name.csv', sep = ';') 但是,问题是,尽管文件被读入数据框数据,但读取文件列的实例不正确,因为分隔符的数量不同,虽然可以确定分隔符/分隔符将是分号,但它们的数量变化很大,如;;;;等等 我想完成的是能够将CSV文件正确

我有一个CSV文件,它使用分号;作为分隔符。然而,问题是分号的实例数量不同,即有时只有一个;,有时多个分号,如;;;;;;等等,考虑到数据相当大,我真的不知道

最简单的方法,显然是使用;要使用的是分隔符

data = pd.read_csv('my_file_name.csv', sep = ';')
但是,问题是,尽管文件被读入数据框数据,但读取文件列的实例不正确,因为分隔符的数量不同,虽然可以确定分隔符/分隔符将是分号,但它们的数量变化很大,如;;;;等等

我想完成的是能够将CSV文件正确地读入熊猫数据框,并考虑;作为分隔符/分隔符。当至少有一个时;,可以将其视为分隔符。问题出现了,我不知道是否要具体说明;作为分隔符;;;作为分隔符等,因为数据集中分号的实例数量不同,我不确定这是否会导致无法使用或|运算符

我尝试使用sep=None并将引擎设置为“python”,但它无法将CSV文件正确地读入数据帧

data = pd.read_csv('my_file_name.csv', sep = None, engine = 'python')

非常感谢您在这方面提供的任何帮助。

数据集通常以“;”的形式提供分隔字段如下所示

在上面的示例中,显示学生数据集,我们只能将其与“;”分开。我们不能使用sep=None

下面是一些在学生数据集中使用的python代码示例

import pandas as pd
import numpy as np
import sklearn
from sklearn import linear_model
from sklearn.utils import shuffle

data = pd.read_csv("student-mat.csv" ,sep=";")

sep=[;]+,engine='python'如何工作?您尝试过上面的方法吗?另外,是否有可能一行中的两个或三个分号实际上意味着空白字段?@jezrael我尝试过这个方法,但文件似乎仍然无法正确读取。有些列完全具有NAN,实际数据肯定不是这样。但问题是,;发生的次数不同。但是,可以肯定的是,分离器要么是单个;,或者是一组分号。@scharfmn我尝试了上面的方法,但不幸的是对我无效。不,多个分号并不意味着这些字段是空白字段。这只是一种数据排列的方式,有时他们使用单一的数据;有时是一组分号。但是可以肯定的是,并不是像目前将数据读入数据框时那样,列中包含所有的NAN;用文本编辑器打开副本;进行正则表达式搜索和替换,将倍数缩减为单个;拯救试着读懂熊猫?也可以编写脚本,等等。这并不能回答我的问题。在这里使用机器学习的目的是什么?我的问题是关于将CSV文件读取为具有不同分隔符实例数的熊猫数据帧;来自csv。请检查您的csv文件是否与之分离;或者不可以将分隔符用作无。请参考@Anaidel on的答案。但不管怎样,你只是提到如何读取CSV文件,我已经很清楚了,这和我在问题中提到的一样。你能在你的答案中添加一些实质性的东西,这对其他人会有帮助吗?同样,sklearn与本案无关。