Как читать в многочисленных файлах CSV и рассчитать статистику boxplot для каждого? - PullRequest
0 голосов
/ 02 апреля 2019

У меня есть каталог, содержащий около 10 CSV-файлов, все огромные наборы данных с 50M + строк. Я хочу создать цикл для

  • читать их по одному
  • рассчитать статистику коробочного графика с использованием функции квантиля для каждого набора данных
  • объединить эту статистику в один фрейм данных

Есть идеи, как мне это сделать?

Вот как я ожидаю, что результирующий df будет выглядеть, столбцы, состоящие из объектов и квантилей вероятности.

features  25%   50%   75%
Age       24     28    35
Height    161   175   194

1 Ответ

0 голосов
/ 02 апреля 2019

Изучите функции панд read_csv и квантиль панд .

Например, у вас может быть что-то вроде следующего:

quantiles = [.25, .50, .75]
results = OrderedDict([(x,[]) for x in quantiles])
columns = ["age", "height"]

for csv_file in os.listdir(file_path):
    df = pd.read_csv(os.path.join(file_path, csv_file))
    for column in columns:
        for value in quantiles:
            results[value].append(df[column].quantile(value))

result_df = pd.DataFrame(data=results, index=columns)

Возможно, вам понадобится использовать параметр chunksize для управления памятью при чтении файлов.

...