以下函数是包的一部分。socceraction
import pandas as pd
from typing import List,Callable
def gamestates(actions : pd.DataFrame, nb_prev_actions: int =3) -> List[pd.DataFrame]:
states = [actions]
for i in range(1, nb_prev_actions):
prev_actions = actions.copy().shift(i, fill_value=0)
prev_actions.loc[: i - 1, :] = pd.concat([actions[:1]] * i, ignore_index=True)
states.append(prev_actions)
return states
我试图将其应用于后续的数据框组,如下所示。df
df = {'half_id': {1: '1', 36: '1', 259: '1', 314: '1', 324: '1', 335: '1', 798: '1', 834: '1', 906: '1',
1114: '1', 1170: '1', 1354: '1', 1494: '1', 1588: '2', 1688: '2', 2190: '2', 2227: '2',
2435: '2', 2734: '2', 2838: '2'},
'variable': {1: 1.0, 36: 1.0, 259: 1.0, 314: 1.0, 324: 1.0, 335: 1.0, 798: 1.0, 834: 1.0, 906: 0.0,
1114: 1.0, 1170: 0.0, 1354: 0.0, 1494: 1.0, 1588: 1.0, 1688: 1.0, 2190: 0.0, 2227: 1.0,
2435: 1.0, 2734: 1.0, 2838: 1.0}}
df = pd.DataFrame.from_dict(df)
for _, half in df.groupby('half_id'):
game_states = gamestates(half, 3)
当我调用不在拆分但原始 DataFrame 上的函数时,问题不会持续存在:
gamestates(df, 3)
错误似乎在方法上被提出,同时将函数的输出分配给变量。但是我挠挠头为什么,找不到原因,可能在这里错过了一些明显的东西。说实话,关于广播阵列的信息对我来说是不清楚的。所以我的问题是:这个错误的原因是什么?使用数据框进行拆分与原始拆分数据有何不同?setitemgamestatesgame_statesValue Errorgroupby
慕丝7291255
相关分类