Это вариант панды в ответе Рафаэля.
Панды read_csv
могут читать одну строку из файла, благодаря параметрам skiprows и nrows. Сложная часть заключается в том, как найти случайный номер строки ...
Итак, простой способ - прочитать все строки из входного файла, выбрать случайную строку и вставить эту строку в кадр данных:
import pandas as pd
import random
import io
with open("someurl.dat") as fd:
line = random.choice(fd.readlines)
df = pd.read_csv(io.StringIO(line), sep='\s+', header=None)
Кстати, ваш код не может дать вам ожидаемый кадр данных. С
market_basket = pd.read_csv(data_url, header=None, delimiter='\n+', engine="python")
sample = market_basket.sample(n=1)
market_basket
- это DataFrame с одним столбцом, содержащим полные строки, проиндексированные по номеру их строки в файле. Итак, sample
- это 40911-я строка, содержащая 39 2787 2858 5016 5041 13569
. Чтобы разобрать его, вам все равно нужно сначала извлечь текущее поле (.iloc[0][0]
) и разделить его:
sample = pd.read_csv(io.StringIO(sample.iloc[0][0]), sep='\s+', header=None)
Я понял, в чем проблема. Это ошибка IE, связанная с IE, HTTPS и аддонами. (См. здесь )
Это была проблема с кэшированием. Когда я установил:
header("Cache-Control: max-age=1");
header("Pragma: public");
(см. здесь ), PDF находился в кеше достаточно долго, чтобы дополнение Adobe Reader могло его захватить.
У меня тоже была эта проблема, я использовал следующее, что, кажется, работает нормально
header("Content-type: application/pdf");
header("Content-Length: $length");
header("Content-Disposition: inline; filename='$filename'");
Я думаю, вам нужно добавить больше заголовков.
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");
header("Content-Disposition: attachment; filename=THEFILENAME.pdf;");
header("Content-Transfer-Encoding: binary");
header("Content-Length: " . strlen($results[1]));
Попробуйте это:
header("Content-Type: application/pdf");
header("Content-Disposition: inline; filename=foo.pdf");
header("Accept-Ranges: bytes");
header("Content-Length: $len");
header("Expires: 0");
header("Cache-Control: private");
Также, если вы используете сеансы, вы можете попробовать установить
session_cache_limiter("none");
или
session_cache_limiter("private");
]