【问题标题】:Reading CSV with special character using python使用python读取带有特殊字符的CSV
【发布时间】:2021-07-28 11:05:07
【问题描述】:

我想将下面的 CSV 文件读入 read_csv,由于 CSV 文件中的特殊字符,无法正确读取文件,数据框中的列名中缺少特殊字符,并且数据到处都是,但excel数据显示正确。 你能帮忙解决这个问题吗,想跳过 5 行并按原样读取剩余数据并重命名列名

CSV 文件:- $$PROGRAM$$ 晶体管.csv
$$设备$$ 1
$$LOT$$很多
$$DATE$$ 2021 年 7 月 28 日

$$FORMAT$$ ,SERIAL,COND=Temp,COND=vdd
1,BA1,25,1.2,7/12/201
1,BA2,25,1.2
1,BA2,25,1.2
1,BA3,25,1.2

import pandas as pd
import numpy as np
x=pd.read_csv(r"\trial.csv",index_col=None, header=0, skiprows=5, error_bad_lines=False,low_memory=False,encoding='utf8')

输出:-X

???????????????????????? SERIAL COND=Temp COND=vdd-
1 BA1 25 1.2 7/12/201-
1 BA2 25 1.2 NaN-
1 BA2 25 1.2 NaN-
1 BA3 25 1.2 NaN-

预期输出:

我得到了什么:-

【问题讨论】:

  • 您期望什么?对我来说似乎很好,你有 4 列,最后一列有 4 个缺失值。使用index_col=0 不会阻止第一个值用作索引,但您可以使用x=x.reset_index()。请提供预期输出以获得更多帮助
  • @mozway 感谢您的回复,请参考问题以获得预期输出

标签: python pandas csvfix


【解决方案1】:

我认为问题在于您的第一行数据实际上包含 5 个值,而您的标题只有 4 个列名(缺少日期列的名称)。

您可以尝试跳过标题并提供列标签:

pd.read_csv(r"\trial.csv",
    skiprows=6,
    names=['FORMAT', 'SERIAL', 'COND=TEMP', 'COND=vdd', 'date'],
    error_bad_lines=False,
    low_memory=False,
    encoding='utf8')

【讨论】:

    猜你喜欢
    • 2023-04-01
    • 2012-05-28
    • 1970-01-01
    • 1970-01-01
    • 2017-07-25
    • 2016-11-13
    • 1970-01-01
    • 2021-08-05
    相关资源
    最近更新 更多