如何在Python中合并数据库重复行(Year列不合并)
Python处理数据库:合并Game与Creator相同行并分行展示Year值
需求明确:将数据库中Game和Creator列内容相同的行合并,Game与Creator仅显示一次,同一分组下的Year值单独分行展示。
实现步骤(基于pandas)
- 导入pandas库并加载数据(可从数据库直接读取,示例用构造数据演示)
- 按
Game和Creator列分组 - 逐组格式化输出,控制列对齐与分隔线展示
代码示例
import pandas as pd # 构造示例数据(实际可替换为从数据库读取的DataFrame) data = { 'Game': ['aaa', 'bbb', 'aaa', 'bbb'], 'Creator': ['zzz', 'xxx', 'zzz', 'xxx'], 'Year': [2002, 2001, 2000, 3001] } df = pd.DataFrame(data) # 按Game和Creator分组 grouped = df.groupby(['Game', 'Creator']) # 输出表头与分隔线 print("Game | Creator | Year |") print("________________________________|") # 遍历每个分组并格式化输出 for (game, creator), group in grouped: year_list = group['Year'].tolist() # 输出分组第一行:显示Game、Creator和第一个Year print(f"{game:<6} | {creator:<8} | {year_list[0]} |") # 输出剩余Year,每行前两列留空 for year in year_list[1:]: print(" | |___________|") print(f" | | {year:<5} |") # 输出分组底部分隔线 print("________________________________|")
输出效果
运行代码后将得到与期望一致的格式化结果:
Game | Creator | Year | ________________________________| aaa | zzz | 2002 | | |___________| | | 2000 | ________________________________| bbb | xxx | 2001 | | |___________| | | 3001 | ________________________________|
内容的提问来源于stack exchange,提问作者Krya
相关产品推荐
相关产品推荐

