You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Pandas将首元素为年份的列表按行拼接生成指定列DataFrame

解决方案

没问题,我来帮你把这些列表转换成符合要求的Pandas DataFrame!首先得明确你的输入列表结构,我分两种常见情况来给你实现:

情况1:每个列表包含一个年份 + 多组name&number

比如你的输入是类似[2020, "Alice", 50, "Bob", 30]这样的列表——第一个元素是年份,后面跟着成对的名称和数字。这种情况我们需要拆分每组数据并关联年份:

import pandas as pd

# 示例输入数据
data_lists = [
    [2020, "Alice", 50, "Bob", 30],
    [2021, "Charlie", 45, "Diana", 60],
    [2022, "Eve", 70]
]

# 整理数据
processed_rows = []
for single_list in data_lists:
    current_year = single_list[0]
    # 从第2个元素开始,每两个元素为一组拆分
    for idx in range(1, len(single_list), 2):
        # 确保有对应的number(避免列表末尾只有name没有number的情况)
        if idx + 1 < len(single_list):
            name_val = single_list[idx]
            number_val = single_list[idx+1]
            processed_rows.append({
                "name": name_val,
                "number": number_val,
                "year": current_year
            })

# 生成DataFrame
result_df = pd.DataFrame(processed_rows)
print(result_df)

运行后输出的DataFrame会是:

name  number  year
0    Alice      50  2020
1      Bob      30  2020
2  Charlie      45  2021
3    Diana      60  2021
4      Eve      70  2022

情况2:每个列表对应一行数据(年份+单个name&number)

如果你的每个列表结构是[年份, name, number],也就是一个列表对应DataFrame的一行,那处理起来更简单:

import pandas as pd

# 示例输入数据
data_lists = [
    [2020, "Alice", 50],
    [2021, "Bob", 30],
    [2022, "Charlie", 45]
]

# 直接生成DataFrame并调整列顺序
result_df = pd.DataFrame(data_lists, columns=["year", "name", "number"])[["name", "number", "year"]]
print(result_df)

输出结果:

name  number  year
0    Alice      50  2020
1      Bob      30  2021
2  Charlie      45  2022

你可以根据自己的实际输入结构选择对应的代码,要是还有特殊结构的话,随时调整细节就行!

内容的提问来源于stack exchange,提问作者SunAns

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 07:54:01