Python 从列表中创建多个数据帧

Python 从列表中创建多个数据帧,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个足球统计数据的csv文件,我想计算一些关键统计数据的跑步平均值。我能想到的唯一方法是为每个团队创建一个熊猫数据框架,进行计算,然后将信息添加回原始数据框架。在这里,我想浏览一下团队列表,并为每个团队创建一个数据框架。我能做这个吗?以下是我所拥有的: teamlist = [] for x in df['team1']: if x not in teamlist: teamlist.append(x) #here's what I would use to crea

我有一个足球统计数据的csv文件,我想计算一些关键统计数据的跑步平均值。我能想到的唯一方法是为每个团队创建一个熊猫数据框架,进行计算,然后将信息添加回原始数据框架。在这里,我想浏览一下团队列表,并为每个团队创建一个数据框架。我能做这个吗?以下是我所拥有的:

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

此外,如果有一种更简单的方法来计算数据帧中某些行的移动平均数,那就太好了。

您需要进行转换,如下面的示例所示:

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

嗯,创建多个数据帧不是一个好主意,您可以创建一个daraframe并创建一个函数,您可以在其中应用移动平均值,然后通过此代码传递数据
df.groupby('column_name')。apply(lambda x:yourfunctionanmehere(x))
其中x将访问您的所有数据列。谢谢你的评论。首先,当我运行此命令时,我得到以下错误:AttributeError:'SeriesGroupBy'对象没有属性'mean'。其次,我忘了提到我正在尝试做一个5点移动平均线。我想我现在已经用(lambda x:x.rolling(5.mean())。@Buck_Shot当然,但是
rolling()
中的
5
是一个窗口,我想你不想要窗口化的平均线,而是一个正在进行的,
扩展
,一个。有了这个细节,事情会简单得多:)