今天业务上碰到用pandas处理一个大文件的内存不够问题,需要做concat 合并多个文件,每个文件数据在1.4亿行左右。当时第一反应是把dataframe分割成多块小文件处理,后面发现即使pandas内存问题解决了,用pickle做保存数据时也会提升内存不够的报错,后来把dataframe对象转化成string,发现内存占用减少了近一半。
所以打算用先转成string再dump到离线文件里,官网文档上只有to_string的说明,而从string转dataframe却没有提供直接的函数。
其实很简单,我们可以把string放到一个文件对象里,然后通过read_csv函数来创建dataframe对象。
1
2
3
4
5
6
7
8
9
10
11
12
13
|
import sys
if sys.version_info[0] < 3:
from StringIO import StringIO
else:
from io import StringIO
import pandas as pd
TESTDATA=StringIO("""col1;col2;col3
1;4.4;99
2;4.5;200
3;4.7;65
4;3.2;140
""")
df = pd.read_csv(TESTDATA, sep=";")
|
以上这篇pandas string转dataframe的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/u014252563/article/details/70148015