当前位置: 首页 > 知识库问答 >
问题:

在python中合并CSV文件[重复]

楚洋
2023-03-14

我一直试图将几个csv文件合并成一个,但它显示出一些错误。我是python新手,非常感谢您的帮助。

以下是我的代码:

import pandas as pd
import numpy as np
import glob

all_data_csv = pd.read_csv("C:/Users/Am/Documents/A.csv", encoding='utf-8') 

for f in glob.glob('*.csv'):
  df = pd.read_csv(f, encoding='utf-8')
  all_data_csv= pd.merge(all_data_csv,df ,how= 'outer')
  print(all_data_csv)

错误显示为:

Traceback (most recent call last):
  File "pandas\_libs\parsers.pyx", line 1169, in pandas._libs.parsers.TextReader._convert_tokens
  File "pandas\_libs\parsers.pyx", line 1299, in pandas._libs.parsers.TextReader._convert_with_dtype
  File "pandas\_libs\parsers.pyx", line 1315, in pandas._libs.parsers.TextReader._string_convert
  File "pandas\_libs\parsers.pyx", line 1553, in pandas._libs.parsers._string_box_utf8
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x88 in position 1: invalid start byte

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "E:/internship/j.py", line 8, in <module>
    df = pd.read_csv(f, encoding='utf-8')
  File "C:\Users\Amreeta Koner\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pandas\io\parsers.py", line 702, in parser_f
    return _read(filepath_or_buffer, kwds)
  File "C:\Users\Amreeta Koner\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pandas\io\parsers.py", line 435, in _read
    data = parser.read(nrows)
  File "C:\Users\Amreeta Koner\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pandas\io\parsers.py", line 1139, in read
    ret = self._engine.read(nrows)
  File "C:\Users\Amreeta Koner\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pandas\io\parsers.py", line 1995, in read
    data = self._reader.read(nrows)
  File "pandas\_libs\parsers.pyx", line 899, in pandas._libs.parsers.TextReader.read
  File "pandas\_libs\parsers.pyx", line 914, in pandas._libs.parsers.TextReader._read_low_memory
  File "pandas\_libs\parsers.pyx", line 991, in pandas._libs.parsers.TextReader._read_rows
  File "pandas\_libs\parsers.pyx", line 1123, in pandas._libs.parsers.TextReader._convert_column_data
  File "pandas\_libs\parsers.pyx", line 1176, in pandas._libs.parsers.TextReader._convert_tokens
  File "pandas\_libs\parsers.pyx", line 1299, in pandas._libs.parsers.TextReader._convert_with_dtype
  File "pandas\_libs\parsers.pyx", line 1315, in pandas._libs.parsers.TextReader._string_convert
  File "pandas\_libs\parsers.pyx", line 1553, in pandas._libs.parsers._string_box_utf8
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x88 in position 1: invalid start byte

共有2个答案

阎鹏
2023-03-14
#run the same code with little addon 
pd.read_csv("C:/Users/Am/Documents/A.csv",header=0,encoding = "ISO-8859-1") 
仇飞鹏
2023-03-14

您的csv文件中似乎有一个非ascii字符。我会在这里查看答案。希望能有帮助。

 类似资料:
  • 问题内容: 我是Python的初学者。我有多个CSV文件(超过10个),并且它们的列数均相同。我想将所有这些文件合并到一个CSV文件中,在该文件中不再重复标题。 因此,从本质上讲,我只需要具有所有标题的第一行,然后就需要合并所有CSV文件中的所有行。我该怎么做呢? 到目前为止,这是我尝试过的。 问题答案: 虽然我认为最好的答案是来自@valentin的答案,但您可以完全不用模块就可以做到这一点:

  • 我正在用python编写一个CSV文件,使用以下行: 不幸的是,输出显示了一个无用的列,如下所示: 如何才能摆脱这个无用的第一纵队?

  • 我有一些具有相同列标题的CSV文件。例如 文件A 文件B 我想合并它,以便将数据合并到一个文件中,标题在顶部,但其他地方没有标题。 实现这一目标的好方法是什么?

  • 问题内容: 我正在使用Python脚本处理大型CSV文件(数以10M行的GB数)。 这些文件具有不同的行长,并且无法完全加载到内存中进行分析。 每行由脚本中的一个函数分别处理。分析一个文件大约需要20分钟,并且看来磁盘访问速度不是问题,而是处理/函数调用。 代码看起来像这样(非常简单)。实际的代码使用Class结构,但这是相似的: 鉴于计算需要共享的数据结构,使用多核在Python中并行运行分析的

  • 问题内容: 我有一些具有相同列标题的CSV文件。例如 文件A 文件B 我想将其合并,以便将数据合并到一个文件中,文件头位于顶部,但其他任何地方都没有文件头。 什么是实现此目标的好方法? 问题答案: 这应该工作。它检查要合并的文件是否具有匹配的头。否则将引发异常。异常处理(关闭流等)已作为练习。

  • 我从不同的来源获得不同长度的CSV文件。CSV 中的列是不同的,唯一的例外是每个 CSV 文件将始终有一个 Id 列,可用于绑定不同 CSV 文件中的记录。一次需要处理两个这样的 CSV 文件。该过程是从第一个文件中获取 Id 列并匹配第二个 CSV 文件中的行,并创建包含第一个和第二个文件中内容的第三个文件。id 列可以在第一个文件中重复。例如,下面给出。请注意,第一个文件可能有 18 到 19