我有一个非常大的数据框(大约1.1M行),我试图对它进行采样。从python中的大型数据框中快速采样大量的数据
我有一个索引列表(约70,000个索引),我想从整个数据框中选择。
这是我用尽为止,但所有这些方法都服用了太多的时间:
方法1 - 使用大熊猫:
sample = pandas.read_csv("data.csv", index_col = 0).reset_index()
sample = sample[sample['Id'].isin(sample_index_array)]
方法2:
我试着写所有采样的行到另一个csv。
f = open("data.csv",'r')
out = open("sampled_date.csv", 'w')
out.write(f.readline())
while 1:
total += 1
line = f.readline().strip()
if line =='':
break
arr = line.split(",")
if (int(arr[0]) in sample_index_array):
out.write(",".join(e for e in (line)))
任何人都可以请建议一个更好的方法吗?或者我可以如何修改它以使其更快?
感谢
如果我理解你是对的,你可以将你的标记转化为一个熊猫索引对象。然后将对象馈入DataFrame中直接切片。 – pylang