对大型csv文件进行排序

  • 背景
  • 惨痛经历
    • 1、使用excel打开
    • 2、使用pandas中的sort_value()方法
  • 解决方法
  • end

背景

爬取了1个G左右的json数据,是全国2000个左右城市和地区5-8年以来的每一天的天气信息,然后把它处理成csv文件,就像这样:
处理之后大概有300多MB:

因为是多线程爬的,所以里面的数据并不是按照一个城市一个城市排列,日期也不是一天一天连续的。为了进一步处理分析数据,需要按照城市分割成2000个左右的CSV文件,为了提高效率,就需要先进行一次排序。

惨痛经历

1、使用excel打开

别想了,那自然是打不开的(至少我的电脑打不开),而且可以预计,就算打开也会十分的卡。

2、使用pandas中的sort_value()方法

网上有说使用pandas库的sort_value()方法根据某一列进行排序,但是因为我的数据中大部分是中文数据,所以测试的效果很差,基本相当于没排。但是如果是英文数据的话,这个方法还是不错的。
具体代码(部分):

import pandas as ps
df = ps.read_csv('new.csv',encoding='gb2312')
df = df.sort_values('city')
df.to_csv('output.csv',encoding='gb2312')

解决方法

使用工具EmEditor
网上有破解版的可以使用,自行搜索下载。
界面
操作
1、打开csv文件。因为是中文界面,就不用多说了。
2、排序。排序的功能栏在这里:
选中一列后,就可以升序或者降序对整个文件排序了,因为文件很大,排序大概花了10秒钟,而且亲测对中文的排序效果很好,完全没有问题。

3、接下来是保存
这一点我觉得是最坑的,因为涉及到了中文编码的问题,千万千万不要点保存或者ctrl+s
如果直接保存,当时什么问题也没有,还是能正常显示,但是如果你把它关掉重新打开,就会出现编码问题,你的中文部分会全部乱码而且无法修复,如果你的原始文件没有备份,那就惨了。这个问题只出现在原始文件较大的情况,我测试了小文件,好像没有这个问题。但是大文件是有这个问题的,而且每次都会出现,不是偶然现象。
这是这个软件的一个bug,所以强烈建议处理数据之前,先把原始数据备份一遍。

正确的姿势是:
点击另存为,然后会这样:
这里的编码是默认的GB2312,因为我写这个CSV的时候用的编码就是GB2312,如果没有默认,要选择这个编码方式,然后再另存一份。这样再打开才不会出现乱码问题。

end

这是我的第一篇博客,不足之处希望大家指正。

大型csv文件排序问题相关推荐

  1. Cinchoo ETL-对大型CSV文件进行排序

    目录 1.介绍 2. 要求 3. 使用方法 3.1 样本数据 清单 1. 示例CSV数据文件 (customers.csv) .NET Framework .NET Core 3.2 快速排序--零配 ...

  2. csv导入mysql phpmyadmin_关于mysql:使用phpMyAdmin导入大型csv文件

    我有一个csv文件,一个很大的文件,有3万行. 我试图从终端使用LOAD文件等导入它.正如我在google上发现的那样,但是它没有用. 它正在进行导入,但是我的表有3万行NULL单元格. 之后,我尝试 ...

  3. 数据处理:1 用pandas处理大型csv文件 2 使用Pandas分块处理大文件 3 分块读取

    在训练机器学习模型的过程中,源数据常常不符合我们的要求.大量繁杂的数据,需要按照我们的需求进行过滤.拿到我们想要的数据格式,并建立能够反映数据间逻辑结构的数据表达形式.  最近就拿到一个小任务,需要处 ...

  4. python读取大文件内存不够_大型CSV文件(numpy)上的Python内存不足

    正如其他人所提到的,对于一个很大的文件,最好不进行迭代. 但是,出于各种原因,您通常确实希望将整个内容存储在内存中. genfromtxt效率要低得多loadtxt(尽管它可以处理丢失的数据,而效率更 ...

  5. python导入csv文件是如何预览后10行-使用python中的csv reader只读取前N行csv文件

    我将一些csv文件的第二列中包含的文本添加到一个列表中,以便稍后对列表中的每个项目执行情绪分析.我的代码目前完全适用于大型csv文件,但是我对列表中的项目执行的情感分析花费了太长时间,这就是为什么我只 ...

  6. CSV文件编辑器——Modern CSV for mac

    在编辑 CSV 文档时,大多数人都在寻找一种高度专业的工具来帮助他们做他们想做或实际需要做的任何事情.现代 CSV 正是这种类型的工具.它提供了大量的选项和功能,同时快速且易于使用.考虑到这一点,当涉 ...

  7. spark解析csv文件_Spark:解析CSV文件并按列值分组

    spark解析csv文件 我发现自己经常使用大型CSV文件,并且意识到我现有的工具集不能让我快速浏览它们,我以为我会花一些时间在Spark上看看是否有帮助. 我正在使用芝加哥市发布的犯罪数据集 :它的 ...

  8. Spark:解析CSV文件并按列值分组

    我发现自己经常使用大型CSV文件,并且意识到我现有的工具集不能让我快速浏览它们,我以为我会花一些时间在Spark上看看是否有帮助. 我正在使用芝加哥市发布的犯罪数据集 :它的大小为1GB,其中包含40 ...

  9. 对csv文件,又get了新的认知

    背景 在数据分析时,有时我们会碰到csv格式文件,需要先进行数据处理,转换成所需要的数据格式,然后才能进行分析 业务侧的同学可能对Excel文件比较熟悉,Excel可以把单个sheet直接保存为csv ...

最新文章

  1. python跟java-还在纠结选Python还是Java?看完就有数了
  2. hdu 2065 红色病毒问题 (母函数)
  3. cocosc++怎么打印_Lua调用C++时打印堆栈信息
  4. Apache Commons:Commons-codec介绍
  5. signature=16ceadeb007b12c6b3bcab834073ab21,Distributed Backscattering
  6. java编写科赫曲线_matlab绘制peano(皮亚诺)曲线和koch(科赫曲线,雪花曲线)分形曲线...
  7. windows远程桌面mstsc使用 代理
  8. 计算机网络——物理层基本概念
  9. 2015 - Human-level control through deep reinforcement learning
  10. 最新数据!妇科类用药领域,中成药占比高
  11. 异步消息队列Celery
  12. 插入附件 文件名显示不全_批量插入、提取图片,这几招要会掌握
  13. NDK编译doubango时出现错误:undefined reference to ‘stderr‘
  14. 断点续传续播的大概原理
  15. kettle-java代码执行转换并获取步骤度量
  16. 本题要求计算给定的一系列正整数中奇数的和。
  17. appium示例代码python_Appium+python测试app实例
  18. MMORPG传奇类手游《空空西游》完整源码(客户端cocos2d-js+服务端pomelo+cocosStudio工程+搭建教程)
  19. vue中eslint报Disallow self-closing on HTML void elements格式错误时的解决方案
  20. 10100cpu支持Linux,i3-10100 cpu能装win7吗?i3-10100 装win7详细教程(完美支持)

热门文章

  1. 其详细的告诉我区块链给商业银行带来的负面影响
  2. 文件在线预览(免费)--毕升office系统
  3. 对LOAM算法原理和代码的理解
  4. 浙大PAT 乙级(题号1036~1040)自解全AC Java | C++ | Python实现
  5. c++整蛊小程序(让他的鼠标不听使唤)医院wifi很快!
  6. 数据中心何时能摆脱夜夜割,蓝瘦香菇
  7. Android - TextView限制文本长度,英文占1位,中文占2位
  8. Trimble MB-Two OEM GNSS板 参考手册(四)
  9. 灰度巡线传感器_灰度传感器的工作原理_灰度传感器调节方法
  10. Python学习笔记(4)-字符串操作