Вопрос:

Python версия формулы Excel

python python-3.x

14 просмотра

1 ответ

13 Репутация автора

В настоящее время я создаю программу на Python 3, которая будет выбирать наиболее частые числа из CSV из шести столбцов. Пока у меня есть код, который будет выбирать наиболее часто встречающиеся из каждого столбца, но я также хочу код, который может выбрать шесть наиболее часто (от 1-го по частоте до 6-го) числа из всех столбцов и строк, вместе взятых.

У меня есть таблица Excel, которая делает это, используя формулу:

=MODE(IF(1 - ISNUMBER(MATCH(B2:G402,$L$24:L24,0)),B2:G402))

Затем перетащите расчет вниз, чтобы отобразить шесть чисел (насколько я могу судить, это рабочая формула!)

Есть ли способ получить эту формулу или что-то лучше в Python 3? То есть код будет отображать шесть самых распространенных чисел из шести столбцов и более 400 строк?

Вот мой код до сих пор:

import csv
import os
import random


from collections import Counter
filename='lotto.csv'

os.system('cls' if os.name == 'nt' else 'clear')
print("\n\n********** Lottery Number Generator **********\n\n")
print("Based on all previous Lotto numbers from CSV.\n")

x = 1
while x < 8:

    with open(filename, 'r') as f:
      column = (row[x] for row in csv.reader(f))
      print("Lotto Number", x, ": {0}".format(Counter(column).most_common()[0][0]))
      x = x + 1

Есть идеи, ребята?

Заранее спасибо!

Дейв

Автор: DavidH Источник Размещён: 11.08.2019 07:40

Ответы (1)


0 плюса

152 Репутация автора

Вот для меня самый простой способ для вас.

Я буду использовать панд (установите его с помощью pip install pandas):

import pandas as pd
df = pd.read_csv('filename.csv')
freq = df.stack().value_counts()

Вы получите список частот каждого элемента в массиве.

Однако, если вам нужна частота только одного столбца, вы можете сделать это:

freq = df['column_name'].value_counts()
Автор: Alex_6 Размещён: 11.08.2019 07:57
Вопросы из категории :
32x32