Pandas无法加载数据,csv编码之谜

2024-02-18

我正在尝试将数据集加载到 pandas 中,但似乎无法完成第 1 步。我是新手,所以如果这是显而易见的,请原谅,我已经搜索了以前的主题,但没有找到答案。数据大部分是汉字,这可能是问题所在。

.csv 非常大,可以在此处找到:http://weibscope.jmsc.hku.hk/datazip/ http://weiboscope.jmsc.hku.hk/datazip/我正在第一周尝试。

在下面的代码中,我确定了尝试的 3 种解码类型,包括尝试查看使用的编码

import pandas
import chardet
import os


#this is what I tried to start
    data = pandas.read_csv('week1.csv', encoding="utf-8")

    #spits out error: UnicodeDecodeError: 'utf-8' codec can't decode byte 0x9a in position 69: invalid start byte

#Code to check encoding -- this spits out ascii
bytes = min(32, os.path.getsize('week1.csv'))
raw = open('week1.csv', 'rb').read(bytes)
chardet.detect(raw)

#so i tried this! it also fails, which isn't that surprising since i don't know how you'd do chinese chars in ascii anyway
data = pandas.read_csv('week1.csv', encoding="ascii")

#spits out error: UnicodeDecodeError: 'ascii' codec can't decode byte 0xe6 in position 0: ordinal not in range(128)

#for god knows what reason this allows me to load data into pandas, but definitely not correct encoding because when I print out first 5 lines its gibberish instead of Chinese chars
data = pandas.read_csv('week1.csv', encoding="latin1")

任何帮助将不胜感激!

编辑:@Kristof 提供的答案实际上确实有效,就像我的同事昨天编写的程序一样:

import csv
import pandas as pd

def clean_weiboscope(file, nrows=0):
    res = []
    with open(file, 'r', encoding='utf-8', errors='ignore') as f:
        reader = csv.reader(f)
        for i, row in enumerate(f):
            row = row.replace('\n', '')
            if nrows > 0 and i > nrows:
                break
            if i == 0:
                headers = row.split(',')
            else:
                res.append(tuple(row.split(',')))
    df = pd.DataFrame(res)
    return df

my_df = clean_weiboscope('week1.csv', nrows=0)

我还想为未来的搜索者补充一点,这是 2012 年 Weibscope 的开放数据。


输入文件似乎有问题。整个过程中存在编码错误。

一件事你could要做的就是将 CSV 文件读取为二进制,解码二进制字符串并替换错误字符。

例子 (source https://stackoverflow.com/a/20014805/3165737对于块读取代码):

in_filename = 'week1.csv'
out_filename = 'repaired.csv'

from functools import partial
chunksize = 100*1024*1024 # read 100MB at a time

# Decode with UTF-8 and replace errors with "?"
with open(in_filename, 'rb') as in_file:
    with open(out_filename, 'w') as out_file:
        for byte_fragment in iter(partial(in_file.read, chunksize), b''):
            out_file.write(byte_fragment.decode(encoding='utf_8', errors='replace'))

# Now read the repaired file into a dataframe
import pandas as pd
df = pd.read_csv(out_filename)

df.shape
>> (4790108, 11)

df.head()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Pandas无法加载数据,csv编码之谜 的相关文章

  • 使 django 服务器可以在 LAN 中访问

    我已经安装了Django服务器 可以如下访问 http localhost 8000 get sms http 127 0 0 1 8000 get sms 假设我的IP是x x x x 当我这样做时 从同一网络下的另一台电脑 my ip
  • OpenCV Python cv2.mixChannels()

    我试图将其从 C 转换为 Python 但它给出了不同的色调结果 In C Transform it to HSV cvtColor src hsv CV BGR2HSV Use only the Hue value hue create
  • 使用 matplotlib 绘制时间序列数据并仅在年初显示年份

    rcParams date autoformatter month b n Y 我正在使用 matpltolib 来绘制时间序列 如果我按上述方式设置 rcParams 则生成的图会在每个刻度处标记月份名称和年份 我怎样才能将其设置为仅在每
  • 从字符串中删除识别的日期

    作为输入 我有几个包含不同格式日期的字符串 例如 彼得在16 45 我的生日是1990年7月8日 On 7 月 11 日星期六我会回家 I use dateutil parser parse识别字符串中的日期 在下一步中 我想从字符串中删除
  • 绘制随时间变化的分类数据计数

    我有一个数据框 df 其中有一列包含分类数据 ETH 带有 DateTimeIndex 我想绘制类别counts随着时间的推移 它们按天索引 我最好按年绘制它们 df pd DataFrame County 0 Bexar 3 Nueces
  • SQLALchemy .query:类“Car”的未解析属性引用“query”

    我有一个这里已经提到的问题https youtrack jetbrains com issue PY 44557 https youtrack jetbrains com issue PY 44557 但我还没有找到解决方案 我使用 Pyt
  • 测试 python Counter 是否包含在另一个 Counter 中

    如何测试是否是pythonCounter https docs python org 2 library collections html collections Counter is 包含在另一个中使用以下定义 柜台a包含在计数器中b当且
  • 使用 Tkinter 显示 numpy 数组中的图像

    我对 Python 缺乏经验 第一次使用 Tkinter 制作一个 UI 显示我的数字分类程序与 mnist 数据集的结果 当图像来自 numpy 数组而不是我的 PC 上的文件路径时 我有一个关于在 Tkinter 中显示图像的问题 我为
  • 从 Flask 访问 Heroku 变量

    我已经使用以下命令在 Heroku 配置中设置了数据库变量 heroku config add server xxx xxx xxx xxx heroku config add user userName heroku config add
  • 如何在Python中获取葡萄牙语字符?

    我正在研究葡萄牙语 角色看起来很奇怪 我怎样才能解决这个问题 代码 import feedparser import random Vou definir os feeds feeds conf feedurl http pplware s
  • 添加不同形状的 numpy 数组

    我想添加两个不同形状的 numpy 数组 但不进行广播 而是将 缺失 值视为零 可能最简单的例子是 1 2 3 2 gt 3 2 3 or 1 2 3 2 1 gt 3 2 3 1 0 0 我事先不知道形状 我正在弄乱每个 np shape
  • IO 密集型任务中的 Python 多线程

    建议仅在 IO 密集型任务中使用 Python 多线程 因为 Python 有一个全局解释器锁 GIL 只允许一个线程持有 Python 解释器的控制权 然而 多线程对于 IO 密集型操作有意义吗 https stackoverflow c
  • 如何计算 pandas 数据帧上的连续有序值

    我试图从给定的数据帧中获取连续 0 值的最大计数 其中包含来自 pandas 数据帧的 id date value 列 如下所示 id date value 354 2019 03 01 0 354 2019 03 02 0 354 201
  • 发送用户注册密码,django-allauth

    我在 django 应用程序上使用 django alluth 进行身份验证 注册 我需要创建一个自定义注册表单 其中只有一个字段 电子邮件 密码将在服务器上生成 这是我创建的表格 from django import forms from
  • 使用 Python 的 matplotlib 选择在屏幕上显示哪些图形以及将哪些图形保存到文件中

    我想用Python创建不同的图形matplotlib pyplot 然后 我想将其中一些保存到文件中 而另一些则应使用show 命令 然而 show 显示all创建的数字 我可以通过调用来避免这种情况close 创建我不想在屏幕上显示的绘图
  • Rocket UniData/UniVerse:ODBC 无法分配足够的内存

    每当我尝试使用pyodbc连接到 Rocket UniData UniVerse 数据时我不断遇到错误 pyodbc Error 00000 00000 Rocket U2 U2ODBC 0302810 Unable to allocate
  • 从列表指向字典变量

    假设你有一个清单 a 3 4 1 我想用这些信息来指向字典 b 3 4 1 现在 我需要的是一个常规 看到该值后 在 b 的位置内读写一个值 我不喜欢复制变量 我想直接改变变量b的内容 假设b是一个嵌套字典 你可以这样做 reduce di
  • 如何使用 Pycharm 安装 tkinter? [复制]

    这个问题在这里已经有答案了 I used sudo apt get install python3 6 tk而且效果很好 如果我在终端中打开 python Tkinter 就可以工作 但我无法将其安装在我的 Pycharm 项目上 pip
  • 如何将输入读取为数字?

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 Why are x and y下面的代码中使用字符串而不是整数 注意 在Python 2
  • Statsmodels.formula.api OLS不显示截距的统计值

    我正在运行以下源代码 import statsmodels formula api as sm Add one column of ones for the intercept term X np append arr np ones 50

随机推荐

  • 使用 adb 从损坏的 Android 设备中回收传感器

    我刚刚把我的s3弄坏了 三年前 它是最好的智能手机之一 Question如何通过 USB 获取手机惯性传感器的值 我想使用设备的加速度计 陀螺仪 磁力计 气压计和 GPS 传感器 假设我们想要得到 沿三个轴的原始加速度数据 我连接了 USB
  • Glassfish 5.0 java.lang.NoSuchMethodError

    当我尝试连接谷歌自定义搜索 api glassfish 时抛出 nosuchmethoderror 这就是代码 private int conn String search throws Exception String key mykey
  • HOG:对比度归一化步骤做了什么?

    根据HOG流程 如论文中所述用于人体检测的定向梯度直方图 参见下面的链接 对比归一化步骤是在分箱和加权投票之后完成的 我不明白 如果我已经计算了细胞的加权梯度 那么图像对比度的归一化现在对我有什么帮助 据我了解 对比度归一化是在原始图像上完
  • ggplot (geom_segment) 中的颜色

    使用facet grid时 如何根据数据中的因素对geom segments进行着色 我的方法失败了 因为颜色分配错误 这是一些数据 visual data data frame Values 10 1 Words c yeah what
  • 当我将 URL 添加到列表,然后使用 ajax 时,我尝试在某些 iframe 中显示列表的内容,页面会自行重新加载

    我正在构建一个仪表板 它的小工具是一些指向我想要在 iframe 内显示的不同页面的链接 我有一个按钮可以将新小工具添加到仪表板 添加新小工具后 我刷新仪表板 对于前 3 个小工具 应用程序没有任何问题 并且运行完美 但是 当我想添加第四个
  • 使用 bq 命令行实用程序运行保存的查询

    我有一个 BQ 脚本存储为 已保存的查询 我想知道是否可以使用 bq 命令行实用程序执行它 在文档中找不到相关内容 保存的查询 只能通过控制台访问 不能通过 API 访问 一种可能更适合您的方法是使用脚本和存储过程 https cloud
  • Git 中的致命错误:合并文件的多个阶段条目

    我正在从事我公司的一个生产项目 之前我创建了一个藏匿处并进行了一些更改 然后 当我尝试应用我的藏品时 它产生了冲突 我尝试通过单击每个文件中的 撤消 来重置 Visula Studio 中的所有更改 然后 当我尝试从 git bash 显示
  • 使用 @RequestBody List 的 Spring MVC REST 在语法上返回 HTTP 400

    我正在使用 Spring 4 Jackson 2 并在自定义类上使用 RequestBody 编写了一个功能齐全的 POST 方法 此方法在解组对象时没有任何问题 ResponseBody RequestMapping value stor
  • NSURLConnection、NSURLSession 和 AFNetworking 之间有什么区别? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我想知道它们之间的基本区别是什么 以及在 Objective c 和 swift 中管理 iOS 端 Web 服务的最佳和常见方法是什么 正
  • 如何在 Matlab 中将 PARFOR 与 Core i3 并行 4 工作

    我有适用于 Ubuntu 64 位的 Matlab R2012b 我有一个 Intel Core i3 CPU M 330 2 13GHz 4 我想用parfor同时并行化 4 个循环 因为 Intel Core i3 有 2 个核心和 4
  • Groovy SwingBuilder:更改面板颜色的按钮

    为什么这段代码会失败 我想更改动态构造的一系列多个面板中的一个面板的颜色 面板总数事先未知 由于某种原因 此代码在引用特定面板的名称 例如 panel2 时有效 但在我动态引用它 panelID 时则无效 import groovy swi
  • 如何从视频文件中获取图像

    你好 我是韩国的开发者 我有一些问题 所以我进入这个网站 InputStream is URL url new URL http 112 216 25 58 8888 VOD LAUNCHER media youtube sample3 m
  • 在 SQL 中使用 EXISTS 作为列

    是否可以使用的值EXISTS作为查询的一部分 请注意 不幸的是 由于客户端限制 我需要 SQLServer 2005 兼容的答案 因此 当返回一组结果时 其中一列是一个布尔值 它表明子查询是否会返回任何行 例如 我想返回用户名列表以及不同的
  • 如何使用 boost::asio 将 URL 转换为 IP 地址?

    所以我需要某种转向方式Protocol URLorIP Port串入串ip int port如何使用 boost ASIO 和 Boost Regex 来做这样的事情 或者是否有可能 使用获取 IPC 网络库 http cpp netlib
  • 在部分之间重新排列项目时 UICollectionView 崩溃

    我在动画中的各部分之间进行更改时遇到问题UICollectionView 我的程序总是崩溃 这是怎么回事 我有一个集合视图 它有四个部分 0 A 1 B 2 C 3 D 我想将其转换为只有三个具有相同项目的部分 0 A1 乙 丙2 D 我想
  • 如何取消拦截器中的当前请求 - Angular 4

    如你所知 可以使用拦截器在新版本的 Angular 4 中 在我的例子中 我想在某些情况下取消拦截器中的请求 那么有可能吗 也许我应该问的是 我应该采取哪种方式 如果我找到一种方法来重写对请求的一些响应而不是取消它 那也可以 我认为要切断拦
  • 无法编辑 crontab (linux Alpine)

    我在非 root 帐户下的 alpine 中遇到了 crontab 问题 bash 4 3 crontab e crontab must be suid to work properly 这是输出id命令 bash 4 3 id uid 4
  • 正则表达式:将所有内容匹配到最后一个空格而不包含它

    我想将字符串中的所有内容匹配到最后一个空格 但不包含它 举例来说 我想匹配我输入的字符bold RENATA T GROCHAL 到目前为止我已经 s https regex101 com r gM3aM2 1但是 它与最后一个空格匹配 但
  • 将具有多种数据类型的Python序列转换为张量

    我正在使用 TensorFlow r1 7 和 python3 6 5 我对 TensorFlow 也很陌生 所以如果可能的话 我希望有易于阅读的解释 我正在尝试使用此函数将输入数据转换为张量数据集tf data Dataset from
  • Pandas无法加载数据,csv编码之谜

    我正在尝试将数据集加载到 pandas 中 但似乎无法完成第 1 步 我是新手 所以如果这是显而易见的 请原谅 我已经搜索了以前的主题 但没有找到答案 数据大部分是汉字 这可能是问题所在 csv 非常大 可以在此处找到 http weibs