【发布时间】:2015-05-23 02:15:24
【问题描述】:
我有这样的 csv 文件:
string, 3.54545,4.3434,3.34435543
string, 4.54545,67.3434,5.34435543
...
stringN, 5.54545,1.3434,9.34435543
如何使用 csv 模块提取两个不同列表中的第一列(字符串)和第二列(浮点数)?例如,我想得到这样的东西:
list1 = [string,string,...,string]
list2 = [3.54545,4.54545,..,5.54545]
其中list1 是字符串列表,list2 是浮点数列表。我用 pandas 尝试了以下操作,问题是它需要大量读取文件:
df = pd.read_csv('test_dict.csv', header = None)
list1 = df[0].values.tolist()
list2 = df[1].values.tolist()
提前谢谢各位!
【问题讨论】:
-
问题是它需要大量读取文件:你是什么意思?
-
感谢@TimCastelijns 的反馈。问题在于,对于 pandas,这项任务花费了很多时间。另一种方法呢(例如使用 numpy 阅读器或使用 csv 模块)?
-
Pandas 是针对此类任务的优化库,您为什么认为使用例如手动执行它? csv 模块会更快吗?
-
你的文件有多大?
-
这很令人惊讶,因为我希望 pandas 在眨眼间就能读完三千行。也许您代码的其他部分是导致速度变慢的原因。
标签: python python-2.7 csv numpy pandas