繁体   English   中英

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

[英]Use pandas.read_csv to convert comma seperate string list into dataframe

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

import Pandas as pd

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

我知道我可以用逗号分割字符串->放入列表中->转换为数据帧,但想知道是否可以使用pd.read_csv做到这一点呢?

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可以做的最好的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为我们做的一件事是解析整数。 拆分后必须这样做时,额外的开销会变得很昂贵。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM