前言
本文介绍如何利用pandas对超大CSV文件进行快速拆分。
1. 操作步骤
1.1 安装pandas
1
|
pip install pandas |
1.2 拆分大文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
import pandas as pd # 读取csv文件 df = pd.read_csv( "../super_big.csv" ) # 获取文件总行数 row_num = len (df) # 确定每个小文件要包含的数据量 step = 400 for start in range ( 0 , row_num, step): stop = start + step filename = "./small_{}-{}.csv" . format (start, stop) d = df[start: stop] print ( "Saving file : " + filename + ", data size : " + str ( len (d))) d.to_csv(fname, index = None ) # 输出如下 # Saving file : ./small_0-500.csv, data size : 500 # Saving file : ./small_500-1000.csv, data size : 500 |
代码就这么简单。
2. 再多了解一点儿
2.1 pandas读取csv文件后,返回的是什么类型?
1
2
3
4
5
|
import pandas df = pandas.read_csv( './super_big.csv' ) type (df) < class 'pandas.core.frame.DataFrame' > |
2.2 如何从DataFrame中读取某一行呢?
1
2
3
4
|
# 返回第一行 print (df.loc[ 0 ]) # 返回第二行 print (df.loc[ 1 ]) |
2.3 如何从DataFrame读取多行呢?
1
|
d = df[start: stop] |
2.4 如何从DataFrame中读取某一列呢?
1
2
3
4
5
6
7
8
9
10
11
12
|
data = { "name" : [ "peter" , "rose" , "joe" ], "career" : [ "teacher" , "engineer" , "doctor" ] } df = pd.DataFrame(data) print (df[ "name" ]) #0 peter #1 rose #2 joe #Name: name, dtype: object |
2.5 如何用pandas读写CSV文件?
1
2
3
|
df = pd.read_csv( "YOUT_CSV_FILE.csv" ) df.to_csv(fname, index = None ) |
注意:index默认是True,意思是保存行索引,这时候需要一个例子。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
data = { "name" : [ "peter" , "rose" , "joe" ], "career" : [ "teacher" , "engineer" , "doctor" ] } df = pd.DataFrame(data) df.to_csv( "a.csv" ) # 文件内容如下,注意每行的开头自动添加了行索引,从0开始递增 ,name,career 0 ,peter,teacher 1 ,rose,engineer 2 ,joe,doctor |
2.6 关于pandas
pandas是一款快速、强大、灵活且易于使用的开源数据分析和操作工具,建立在Python编程语言之上。用了都说好。
3. 小结
其实pandas处理csv文件的方法还有很多,功能非常强大,仅仅是数据切分,就有很多方法,有需要的时候,可以去看看文档。
到此这篇关于如何使用pandas对超大csv文件进行快速拆分的文章就介绍到这了,更多相关pandas拆分csv文件内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://blog.csdn.net/m0_48742971/article/details/123693834