python - 循环构建相关数据框
问题描述
假设我有一个df_player
来自球员“约翰”的数据,他曾在他的 carrear 效力过 5 支球队:
teams = ['Liverpool', 'Chelsea', 'City', 'United', 'Burnley']
现在我想测试他的表现,他的下一支球队对阵他的前球队,就像这样:
Chelsea X Liverpool
City X Chelsea
United X City
Burnley X United
我正在尝试使用pandas
. 数据框有这样的列:
...
name 280502 non-null object
team_name 280502 non-null object
adversary_name 280502 non-null object
....
到目前为止,我有:
for team in teams:
df_former_team = df_player[(df_player['name'] == 'John')
&(df_player['team_name'] == team]
df_next_team = df_former_team[df_former_team['adversary_name'].isin(teams)
但我需要成对进行分析,就像上面的例子一样,以(下一个,前一个)方式。
我该怎么做pandas
?
编辑:
下面提供了一个解决方案:
for team, next_team in zip(teams, teams[1:]):
print (team, next_team)
印刷:
Liverpool Chelsea
Chelsea City
City United
United Burnley
但正确的答案应该反过来打印:
Chelsea Liverpool
City Chelsea
United City
Burnley United
不需要数据帧输出,这高于预期输出。然后数据帧将被正确过滤。
解决方案
这将返回与John
他以前的球队之一比赛的比赛的输出。这是你想要的吗?
player_games = df_player.query('name == "John"')
pair_performance = player_games.query('team_name in @teams or adversary_name in @teams')
推荐阅读
- sql-server - 如何在枢轴中找到平均值
- botframework - 使用 BotFramework Composer 在卡片之间发送值
- javascript - 使用内容恢复 GridstackJS 面板(例如 Highcharts)
- c# - 突然无法更改 HttpClient 上的超时
- javascript - 未捕获的语法错误:构建后出现意外的令牌“<”(Vue.js)
- android - 显示带有 recyclerview 和改造的图像
- ionic4 - 在 ionic 4 中网络离线时显示模式
- java - 如何拆分但不是所有字符
- php - 卷曲不启用 wamp
- python - 仅定义变量后无法访问对象宏中的变量(rivescript)