Поиск строк с максимальным средним значением в кадре данных - PullRequest
0 голосов
/ 18 февраля 2019

Я пытаюсь найти строки в очень большом фрейме данных с самым высоким средним значением.

Причина: я сканировал что-то с помощью лазерных трекеров и использовал «более высокую» точку в качестве точки начала сканирования.Я пытаюсь найти размещенный объект по моим данным.

Я вычислил среднее значение каждой строки с помощью:

base = df.mean(axis=1)
base.columns = ['index','Mean']

Вот пример среднего значения для каждой строки:

0       4.407498
1       4.463597
2       4.611886
3       4.710751
4       4.742491
5       4.580945

Кажется, это работает нормально, за исключением того, что он добавляет столбец индекса и выдает столбцы с индексом типа float64.Затем я попытался найти строки с самым высоким средним значением:

moy = base.loc[base.reset_index().groupby(['index'])['Mean'].idxmax()]

Это выдает tis:

 index      Mean
0         0  4.407498
1         1  4.463597
2         2  4.611886
3         3  4.710751
4         4  4.742491
5         5  4.580945

Но это только переиндексирование (у меня теперь 3 столбца вместо двух) и больше ничего не делает.Он по-прежнему показывает все строки.

Ответы [ 2 ]

0 голосов
/ 18 февраля 2019

Похоже, что ваши данные представляют собой строку или один столбец с пробелом между вашими двумя числами.Предложите разбить столбец на две части и / или использовать что-то похожее на приведенное ниже, чтобы установить индекс для интересующего вас столбца.

import pandas as pd

df = pd.read_csv('testdata.txt', names=["Index", "Mean"], delimiter="\s+")
df = df.set_index("Index")
print(df)
0 голосов
/ 18 февраля 2019

Вот один способ без использования groupby

moy=base.sort_values('Mean').tail(1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...