(model_name, dataset_abbrs, parsed_data)
| 376 | return model_names |
| 377 | |
| 378 | def merge_dataframes(model_name, dataset_abbrs, parsed_data): |
| 379 | dfs = [] |
| 380 | for dataset_abbr in dataset_abbrs: |
| 381 | parallel_flag = 'parallel' in dataset_abbr |
| 382 | df = create_model_dataframe(parsed_data, model_name, dataset_abbr, parallel=parallel_flag) |
| 383 | |
| 384 | if not df.empty and len(df.columns) > 1: |
| 385 | score_column = df.columns[-1] |
| 386 | df.rename(columns={score_column: dataset_abbr}, inplace=True) |
| 387 | |
| 388 | dfs.append(df) |
| 389 | |
| 390 | from functools import reduce |
| 391 | merged_df = reduce(lambda left, right: pd.merge(left, right, on='dataset', how='outer'), dfs) |
| 392 | |
| 393 | if merged_df.isnull().any().any(): |
| 394 | print('Warning: Some rows were filtered out due to NaN values. ' |
| 395 | 'This is often due to mismatched row counts among DataFrames.') |
| 396 | merged_df = merged_df.dropna() |
| 397 | return merged_df |
| 398 | |
| 399 | class NeedleBenchSummarizer(DefaultSummarizer): |
| 400 | """NeedleBench summarizer in OpenCompass. |
no test coverage detected