Поиск имени столбца строки, которая имеет наибольшее значение при понимании строки на основе максимального значения столбца - PullRequest
1 голос
/ 26 февраля 2020

Я довольно новичок в Python. Я пытаюсь определить функцию для набора данных ниже. Пример данных

Сначала я ищу максимальное значение в cell 3. Основываясь на этом максимальном значении, я проверяю, какой столбец, указанный в последних 8 столбцах данных, имеет наибольшее значение против него.

Например, согласно данным, максимальное значение в cell 3 is 1470758. Теперь я проверяю, какие столбцы от столбца cell 9 до cell 16 имеют наибольшее значение против этого максимального значения. В случае этих примеров данных ответом должна быть ячейка 10 со значением 7201. Поэтому на выходе должна быть ячейка 10.

Вот мой код:

def winner(filename):
    data=pd.read_csv(filename, sep=',')
    maxC=data.npop.max()
    while data.loc[data['npop']]==maxC:
        data3=data.iloc[:,-8:].max()
#missing code
winner("demo.csv")

Пожалуйста, помогите. Я не понял, что я должен писать в пропущенном разделе кода.

1 Ответ

0 голосов
/ 26 февраля 2020

Построчное объяснение кода дается с комментариями.

Попробуйте это:

def winner(filename):
    df=pd.read_csv(filename, sep=',')  # Read the csv into dataframe.
    column_names = list(df.columns.values) # Get list of column names

    max_col3_index = df['col3'].idmax()  # this will return the index of max value in `col3` column.

    row_data = df.loc[max_col3_index, column_names[-8:]]  # get series of data present in last 8 columns at above index.

    final_column_name = row_data.idxmax()  # Get the name of column having max value in above series.

    print(final_column_name)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...