本文介绍如何利用pandas对超大CSV文件进行快速拆分。
pip install pandas
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
代码就这么简单。
import pandas
df = pandas.read_csv('./super_big.csv')
type(df)
<class 'pandas.core.frame.DataFrame'>
# 返回第一行 print(df.loc[0]) # 返回第二行 print(df.loc[1])
d = df[start: stop]
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
df = pd.read_csv("YOUT_CSV_FILE.csv")
df.to_csv(fname, index=None)
注意:index默认是True,意思是保存行索引,这时候需要一个例子。
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
pandas是一款快速、强大、灵活且易于使用的开源数据分析和操作工具,建立在Python编程语言之上。用了都说好。
其实pandas处理csv文件的方法还有很多,功能非常强大,仅仅是数据切分,就有很多方法,有需要的时候,可以去看看文档。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
长按识别二维码并关注微信
更方便到期提醒、手机管理