我有6个相同列名的数据帧。
列名为:
"session_id", "player_id", "gersey_color","timestamp"
每个帧中的数据如下所示:
我想将这些数据帧合并到单个数据帧中,格式如下:
在这里,我使用时间戳作为唯一标识符,并希望获得在所有数据帧中发生的每个时间戳的频率,但分类为session_id
和player_id and gersey_color
组合
我当前的代码可以获取所有信息,但无法按我想要的方式格式化:
for i, combo_row in combo_df.iterrows():
value_in_combo = combo_row['timestamp']
count = 0
player_info = []
session_id = []
for id, df_path in enumerate(df_list):
rule_df = pd.read_excel(df_path)
sub_counter = 0
for idx, entry in rule_df.iterrows():
idr = list(rule_df.columns).index('timestamp')
value = entry[idr]
s_id = entry[list(rule_df.columns).index('session.id')]
player_team = entry[list(rule_df.columns).index('gersey_color')]
player_num = entry[list(rule_df.columns).index('player_id')]
if value == value_in_combo:
sub_counter+=1
session_id.append(s_id)
player_info.append(str(player_team)+str(player_num))
combo_df.at[i, f'df{id+1}'] = ','.join(list(set(player_info)))
combo_df.at[i, 'session_id'] =','.join(list(set(session_id)))
count += sub_counter
combo_df.at[i, 'occurrence_across_rules'] = count
这里combo_df
是预定义的dfi,用于填充所有数据
当前的combo_df
看起来像:
。 但正如我所说,我的代码没有生成我想要的格式。 有人能建议怎么做吗
编辑:
我使用以下方法解决了问题:
combo_df.set_index(['session_id', 'player_team', 'player_num'], inplace=True)
目前没有回答
相关问题 更多 >
编程相关推荐