python - 基于相同的 id 将多行合并为一个,保留所有列但合并相同的单元格值
问题描述
我有一个数据电子表格,其中每个行项目或行都有一个团队代码值以及其他数据列。我想做的是使用 Python 循环遍历行并比较每一行的团队代码值。如果团队代码匹配多行,我想将这些行合并为一行,保留所有数据列并合并相同的团队代码单元格值。
例如,我在电子表格中有以下行项目:
团队代码 | 评估者 | 积分 | 秩 | 条款 |
---|---|---|---|---|
PJ-1501 | IO866 | 37.0 | 6.0 | 精通 |
PJ-1501 | IO1123 | 39.0 | 5.0 | 很好 |
PJ-1502 | IO1123 | 47.0 | 3.0 | 杰出的 |
PJ-1502 | IO866 | 47.0 | 3.0 | 杰出的 |
我想像这样加入他们:
团队代码 | 评估者 | 积分 | 秩 | 条款 | 评估者 | 积分 | 秩 | 条款 |
---|---|---|---|---|---|---|---|---|
PJ-1501 | IO866 | 37.0 | 6.0 | 精通 | IO1123 | 39.0 | 5.0 | 很好 |
PJ-1502 | IO1123 | 47.0 | 3.0 | 杰出的 | IO866 | 47.0 | 3.0 | 杰出的 |
现在,这 4 行合并为 2 行,所有列均已连接,并且团队代码值已合并。
这是我到目前为止所拥有的代码,它使我能够将行项目堆叠起来。我只需要知道其余代码现在加入一行并合并团队代码值。
cwd = os.path.abspath('')
files = os.listdir(cwd)
file = 'ScP Scores IC 2021 Exported.xlsx'
spreadsheet_file = pd.ExcelFile(file)'
worksheet = spreadsheet_file.sheet_names'
for sheet_name in worksheet:'
df = pd.read_excel(spreadsheet_file, sheet_name)'
df = df[['Team Code', 'Evaluator', 'Total Points', 'Rank', 'Quality Terms']]'
grouped = df.groupby('Team Code')'
我试过groupby
,merge
和join
. 没有什么适合我。非常感谢任何帮助。;-)
解决方案
推荐阅读
- c# - Entity Framework 为同一个模式创建了 2 个数据库并使用了错误的一个
- adobe-xd - 我可以构建一个符号清理插件吗?
- kivy - 椭圆位置
- angular - Angular 7 - 我如何共享令牌更新 Observable?
- android - 线程记录数据到文本文件 - 如何?
- windows - Inno Setup - 如何赋予一个特定用户对文件夹的权限
- c# - 如何将此 SQL 语句转换为 Lambda/Linq 表达式
- python-3.x - 对 Window 10 的 Docker python 客户端支持
- c# - 未触及的代码突然抛出 Method not found: 'Void Swashbuckle.Application.SwaggerDocsConfig.RootUrl' 在启动时
- linux - 在 docker 中更改用户时资源暂时不可用