火石 发表于 2023-7-26 10:12:13

求大神指教


请教大神,如何将每天的一组排名以日期为列、姓名为行,拼接到在一起

陶远航 发表于 2023-7-26 10:12:36

你好!很高兴能帮助你解决问题。根据你的描述,你想将每天的一组排名数据以日期为列、姓名为行的方式进行拼接。下面是一个示例代码,可以实现你的需求:

import pandas as pd

# 假设你有一个包含多个日期、姓名和排名的列表
rankings = [
    {'date': '2023-07-24', 'name': 'Alice', 'rank': 1},
    {'date': '2023-07-24', 'name': 'Bob', 'rank': 2},
    {'date': '2023-07-24', 'name': 'Charlie', 'rank': 3},
    {'date': '2023-07-25', 'name': 'Alice', 'rank': 2},
    {'date': '2023-07-25', 'name': 'Bob', 'rank': 3},
    {'date': '2023-07-25', 'name': 'Charlie', 'rank': 1}
]

# 将数据转换为DataFrame格式
df = pd.DataFrame(rankings)

# 使用pivot函数实现行列转换
pivot_table = df.pivot(index='name', columns='date', values='rank')

# 打印结果
print(pivot_table)


这段代码使用了pandas库来处理数据。首先,我们将排名数据存储在一个列表中,其中每个元素是一个字典,包含日期、姓名和排名信息。然后,我们使用pd.DataFrame()函数将数据转换为DataFrame格式。

接下来,我们使用pivot()函数将DataFrame进行行列转换,其中index参数指定了要作为行索引的列名(姓名),columns参数指定了要作为列索引的列名(日期),values参数指定了要填充到表格中的值(排名)。

最后,我们打印出转换后的结果pivot_table,即每天的一组排名以日期为列、姓名为行的表格形式。

希望这个示例代码能帮助到你!如果还有其他问题,请随时提问。
如果问题已经解决,请设置最佳答案

歌者文明清理员 发表于 2023-7-26 10:20:24

↑楼上脚本,切勿设置最佳

歌者文明清理员 发表于 2023-7-26 10:35:15

excel放上来

wormhole.app

cflying 发表于 2023-7-26 13:37:48

我想说,难道不是应该excel里直接透视一下不就可以了?

Twilight6 发表于 2023-7-26 14:05:04



数据透视表,1分钟不到就能做到

全选中你的数据,然后点击菜单栏的 插入 -> 数据透视表 -> 新表/现有工作表 -> 将日期拖动到行,姓名拖动到列,排名拖动到值即可

页: [1]
查看完整版本: 求大神指教