Python 带有附加空格的CSV
如何在正确的位置读取Python 带有附加空格的CSV,python,pandas,csv,Python,Pandas,Csv,如何在正确的位置读取11和12以及23和24文件 例如,数字11和12应分别位于x3和x4变量中 可以在下面看到MWE(obs.:csv格式) 编辑-实例说明 此csv文件有5列:x1、x2、x3、x4和一列没有名称(在最后分号之后) 11和12(以及23和24)的唯一正确位置是x4和第五列 如果您想要x3和x4中的代码,则必须删除额外的在11和23之前 您可能需要检查原始文件,以查看字段中是否有分隔符。假设您的“正确”位置是第x4列。您可以为sep传入一个正则表达式,该表达式将在一次或多次出
11
和12
以及23
和24
文件
例如,数字
11
和12
应分别位于x3
和x4
变量中
可以在下面看到MWE(obs.:csv
格式)
编辑-实例说明
此csv文件有5列:x1、x2、x3、x4和一列没有名称(在最后分号之后) 11和12(以及23和24)的唯一正确位置是x4和第五列 如果您想要x3和x4中的代码,则必须删除额外的
代码>在11和23之前
您可能需要检查原始文件,以查看字段中是否有分隔符。假设您的“正确”位置是第x4列。您可以为sep传入一个正则表达式,该表达式将在一次或多次出现“;”时拆分数据:
data = '''x1;x2;x3;x4;
1;2;3;4;
5;6;7;8;
9;10;;11;12
13;14;15;16;
17;18;19;20;
21;22;;23;24'''
pd.read_csv(StringIO(data),sep='[;]+',engine='python').iloc[:,:-1]
x1 x2 x3 x4
0 1 2 3 4
1 5 6 7 8
2 9 10 11 12
3 13 14 15 16
4 17 18 19 20
5 21 22 23 24
我认为你需要定义你认为“正确的地方”。此外,您似乎在M中遗漏了代码。例如,数字11
和12
应分别位于x3
和x4
变量中。这是否回答了您的问题@man0s此解决方案用于字符串中的空白。这是一个最小工作示例(MWE),在我的问题中,有大量行和许多csv。它们是否存在相同的问题,或者字段中是否有一些分隔符?如果它们与您的示例类似,csv文件的(创建)应该是固定的,而不是解析。@WagnerSilva您是否能够提供一些真实数据(或这些文件中的一些问题行)来查看?谢谢您的回答。我的数据是csv
文件,在本例中,这些文件不起作用。我需要直接读取csv
文件。在实际读取数据时是否包含StringIO?读取您自己的数据时,只需删除StringIO。我放置了数据集的快照。@WagnerSilva我们需要查看原始数据以了解问题所在(在本例中,问题似乎在“AX”列中)。
data = '''x1;x2;x3;x4;
1;2;3;4;
5;6;7;8;
9;10;;11;12
13;14;15;16;
17;18;19;20;
21;22;;23;24'''
pd.read_csv(StringIO(data),sep='[;]+',engine='python').iloc[:,:-1]
x1 x2 x3 x4
0 1 2 3 4
1 5 6 7 8
2 9 10 11 12
3 13 14 15 16
4 17 18 19 20
5 21 22 23 24