使用pandas.read_csv将逗号分隔字符串列表转换为数据帧

时间:2017-07-31 18:40:45

标签: python pandas

如何使用Pandas read_csv将大型列表快速转换为数据帧?

import Pandas as pd

x = '1,2,3,4,5,7,8,9'
df = pd.read_csv(x)

我知道我可以用逗号分割字符串 - >列入清单 - >转换为数据帧,但是想知道有没有办法用pd.read_csv做更快的事情?

1 个答案:

答案 0 :(得分:4)

x = '1,2,3,4,5,7,8,9'
df = pd.read_csv(pd.io.common.StringIO(x), header=None)

df

   0  1  2  3  4  5  7  8
0  1  2  3  4  5  7  8  9

使用pd.read_csv

是最好的

考虑更大的字符串

y = '\n'.join([','.join(['0,1,2,3,4,5,6,7,8,9'] * 100)] * 1000)

并比较这两个选项的时间

%timeit pd.DataFrame([l.split(',') for l in y.split('\n')]).astype(int)
%timeit pd.read_csv(pd.io.common.StringIO(y), header=None)

1 loop, best of 3: 200 ms per loop
10 loops, best of 3: 125 ms per loop

如果我们需要做的就是拆分字符串,split会更快。但是,pd.read_csv为我们做的事情之一是解析整数。分手后不得不花费额外的开销。