python - 根据 Groupby-function 的输出命名 pandas 数据框
问题描述
我有一个数据集,其中包含多个赛季在大量足球比赛中拍摄的所有镜头。我编写了以下脚本来为每个比赛和相应的赛季制作子集。
import pandas as pd
import csv
shots = pd.read_csv("C:/Users/HJA/Desktop/Betting/understatV0.01/shots.csv", encoding='iso-8859-1')
shots_premier_league = shots.groupby(['Competition']).get_group('Premier_League')
shots_bundesliga = shots.groupby(['Competition']).get_group('Bundesliga')
shots_la_liga = shots.groupby(['Competition']).get_group('La_Liga')
shots_ligue_1 = shots.groupby(['Competition']).get_group('Ligue_1')
shots_serie_a = shots.groupby(['Competition']).get_group('Serie_A')
一切都很好,直到这一点。但是,现在我想将每个比赛细分为每个赛季的样本。我使用以下脚本(在这种情况下,我以英超联赛为例:
shots_premier_league_2014 = shots_premier_league.groupby(['Season']).get_group('2014')
shots_premier_league_2015 = shots_premier_league.groupby(['Season']).get_group('2015')
shots_premier_league_2016 = shots_premier_league.groupby(['Season']).get_group('2016')
shots_premier_league_2017 = shots_premier_league.groupby(['Season']).get_group('2017')
shots_premier_league_2018 = shots_premier_league.groupby(['Season']).get_group('2018')
我 100% 确定 2014 年是一个实际值。另外,如何编写一个以 pandas 数据框的名称自动包含比赛和赛季的函数?
解决方案
我认为问题是2014
整数,所以需要删除''
:
.get_group(2014)
但这里更好的是 create dictionary of DataFrames
like,因为不推荐使用全局变量:
dfs = dict(tuple(shots_premier_league.groupby(['Season'])))
然后按键选择每个 DataFrame,例如:
print (dfs[2014])
print (dfs[2015])
如何编写一个以 pandas 数据框的名称自动包含比赛和赛季的函数?
dfs = dict(tuple(shots_premier_league.groupby(['Competition','Season'])))
print (dfs[('Bundesliga', 2014)])
如果要按字符串选择:
d = dict(tuple(df.groupby(['Competition','Season'])))
#python 3.6+ solution with f-strings
dfs = {f'{k1}_{k2}' :v for (k1, k2), v in d.items()}
#python bellow
#dfs = {'{}_{}'.format(k1, k2) :v for (k1, k2), v in d.items()}
print (dfs['Bundesliga_2014'])
如果想查看数据的所有键:
print (dfs.keys())
推荐阅读
- elasticsearch - 弹性的全文和 knn_vector 混合搜索
- azure - ARM 模板如何将公共 IP 添加到 dns 区域
- angular - 保护管理员路由 Angular || TypeError:无法读取 null 的属性“isAdmin”
- python - 在 Python 中计算矩阵乘以其转置 (AA^T) 的最快方法
- excel - 虽然 Excel 表受密码保护,但我仍然可以从右键菜单中删除
- python - FacetGrid 上的 Seaborn 颜色条用于具有标准化颜色映射的 histplot
- time-series - What to report in a time serie database when the measure failed?
- panel - 在 CANoe 的 CAPL 中使用 Hex/Texteditor 使用系统变量?
- google-app-engine - 使用 IAP 在 App Engine 上提供服务到服务请求
- java - 字符串不会保存从方法内部给它的值