Создание нескольких панелей данных из списка - PullRequest
0 голосов
/ 28 октября 2018

У меня есть CSV-файл с футбольной статистикой, и я хотел бы рассчитать скользящие средние для определенной ключевой статистики. Единственный способ, которым я могу подумать, это создать для каждой команды кадр данных pandas, выполнить вычисления, а затем добавить информацию обратно в исходный кадр данных. Здесь я хочу просмотреть список команд и создать базу данных для каждой из них. Я могу это сделать? Вот что у меня есть:

teamlist = []
for x in df['team1']:
    if x not in teamlist:
        teamlist.append(x)
#here's what I would use to create 1 dataframe
arsenal = df.loc[df['team1']=='Arsenal']

for x in teamlist:
    something  = df.loc[df['team1']== x]

Где у меня есть «что-то», я хотел бы иметь «H» + x + «df» так что, например, датафрейм будет называться HArsenaldf.

Кроме того, если есть более простой способ вычисления скользящих средних только для определенных строк в кадре данных, это было бы здорово.

1 Ответ

0 голосов
/ 28 октября 2018

Вам нужно расширение преобразования, как показано в примере ниже:

import pandas as pd

df = pd.DataFrame({'Team': list('AAAAABBB'),
                   'Score': range(1,9)})


df['RunningAvg'] = df.groupby('Team')['Score'].transform(lambda x: x.expanding().mean())

df

#   Score Team  RunningAvg
#0      1    A         1.0
#1      2    A         1.5
#2      3    A         2.0
#3      4    A         2.5
#4      5    A         3.0
#5      6    B         6.0
#6      7    B         6.5
#7      8    B         7.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...