我有一个非常大的tsv文件,文件内容如下所示
数据:
a b value1 value2
a550 b234 0.555 3.61
a710 b234 0.0963 5.18
a473 b234 0.0843 3.94
a782 b234 0.00542 14.0
a544 b234 0.105 3.94
a211 b234 0.0506 4.71
a656 b234 -0.0295 4.04
a303 b234 -0.0047 4.61
a303 b234 -0.017 4.56
a303 b234 0.0522 8.78
a244 b234 0.0806 5.56
.
.
.
.
我曾经使用pandas将文件读取并解析到字典中,但这需要很多时间
import pandas as pd
import time
start_time =time.time()
data = pd.read_csv("bigfile.tsv", sep ="\t")
data['a_b'] = data[['a', 'b']].apply(tuple, axis=1)
data = dict(zip(data['a_b'], data['score']))
end_time = time.time()
execution_time = end_time-start_time
print(data)
print("time:",execution_time)
输出:
{('a550', 'b234'): -0.0828, ('a710', 'b234'): 0.00984, .............}
time: 464.0104968547821
我知道有更好的方法来加载这个文件以减少加载和解析时间,有人能帮我吗
数据['a_b']=数据['a',b']]。应用(元组,轴=1)是一个庞大的计算。通过使用纯python避免这种情况。我测试了长度超过1000万行的类似数据。只花了3秒钟就完成了任务
相关问题 更多 >
编程相关推荐