Как найти среднее значение в столбцах внутри iterrows в python - PullRequest
1 голос
/ 25 сентября 2019

У меня есть датафрейм со 100+ столбцами, где все столбцы после col10 имеют тип float.То, что я хотел бы сделать, это найти среднее значение определенного диапазона столбцов в цикле.Вот что я пробовал до сих пор:

for index,row in df.iterrows():
    a = row.iloc[col30:col35].mean(axis=0)

Это, к сожалению, возвращает неожиданные значения, и я не могу получить среднее значение col30, col31, col32, col33, col34, col35 для каждой строки. Может кто-топожалуйста, помогите.

1 Ответ

0 голосов
/ 25 сентября 2019

try:

df.iloc[:, 30:35].mean(axis=1)

Вам может потребоваться от 30:35 до 29:35 (вы можете удалить .mean и поэкспериментировать, чтобы понять, как работает .iloc).Обычно в пандах вы хотите максимально избегать петель.Метод .iloc позволяет выбирать индекс и столбцы на основе их позиционного индекса.Затем вы можете использовать .mean () с осью = 1 для суммирования по 1-ой оси (строки).

Вы действительно должны поместить небольшой пример, где я воспроизвожу пример, пожалуйста, посмотрите это ниже, где упомянутыерешение в комментариях работает.

import pandas as pd
df = pd.DataFrame({i:val for i,val in enumerate(range(100))}, index=list(range(100)))
for i,row in df.iterrows():
     a = row.iloc[29:25].mean() # a should be 31.5 for each row
     print(a)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...