0
0 комментариев

Есть отсортированные значения в файле csv. Нужно убрать из них те, вероятность встретить которые, меньше определенного процента.
Механизм такой. Открываем все csv из папки. У нас в качестве примера 20 значений. Из них видно, что значения 0,7; 0,8; 0,9 встречаются по 1 разу. А значения по 1,02 встречаются аж 8 раз.

Один раз из 20 значений, это 1*100/20 = 5% от всех значений.
А 1,02 встречающийся 8 раз, представляет целых 8*100/20 = 40% от всех данных значений.

Нужно построить некую турнирную таблицу, где на каждый файл приходиться 10 мест, в которых 10 наиболее встречающихся значений по порядку. В нашем случае это 1,02 — 40%, 1,00 — 25%, 1,02 — 10% и т.д.

Полагаю это можно выполнить парой строк.

Потом строим графики топ 10, для каждого отдельного файла (ось х — %, у — значение) по получившимся расчетам, сохранять их в файл не надо. Кстати, а как подписать график названием файла?

import matplotlib.pyplot as plt
import matplotlib
matplotlib.style.use('ggplot')
 
a = r'C:/Users/II/Downloads/1/*.csv'
 
for f in files:
    a = pd.read_csv(f, index_col='Date', encoding='latin1')
 
    #
 
    a.plot()
    plt.show()

Пример csv:

Date,total
2015-07-27,0.7
2015-04-20,0.8
2016-03-28,0.9
2015-09-14,1.0
2015-09-14,1.0
2015-07-20,1.0
2015-11-16,1.0
2015-11-23,1.0
2016-02-22,1.01
2015-05-04,1.02
2015-05-11,1.02
2015-11-30,1.02
2016-01-25,1.02
2015-08-31,1.02
2016-02-01,1.02
2016-02-08,1.02
2015-08-24,1.02
2015-04-27,1.04
2015-12-21,1.04

Что получаем на выходе — помимо графиков, через print выводится (после или перед тем, как графики построились):

(название файла 1) - 1,01 53% 1,04 24% 1,07 15% (и так топ 10, то есть 10 значений)
(название файла 2) - ....
(название файла 3) - ....


Добавить комментарий