如何用Python的for loop从列表和子列表列表创建DataFrame?
使用Python for循环从配对列表创建DataFrame
以下是实现需求的具体代码和步骤:
完整代码
import pandas as pd # 定义输入数据 list1 = ["A", "B", "C", "D"] list2 = [[1, 2, 3, 4], [1, 3, 4, 6, 7], [2, 3, 4, 5, 6], [2, 4, 5, 7, 8]] # 初始化空列表存储每行数据 row_data = [] # 遍历配对的类别值和对应子列表 for category, nums in zip(list1, list2): # 为子列表中的每个数值生成一行数据 for num in nums: row_data.append([category, num]) # 转换为DataFrame并指定列名 result_df = pd.DataFrame(row_data, columns=["Col1", "Col2"]) # 查看结果 print(result_df)
代码说明
- 导入依赖:导入
pandas库,这是创建和操作DataFrame的核心工具。 - 数据初始化:定义题目给出的两个输入列表
list1(对应Col1的类别值)和list2(对应每个类别下的Col2数值列表)。 - 存储行数据:创建空列表
row_data,用来逐个存储生成的每行数据(格式为[类别值, 数值])。 - 双层循环生成数据:
- 外层用
zip(list1, list2)将每个类别值和对应的数值子列表配对,确保一一对应。 - 内层遍历子列表中的每个数值,将类别值和数值组合成一行数据,添加到
row_data中。
- 外层用
- 创建DataFrame:用
pd.DataFrame()将row_data转换为DataFrame,指定列名为Col1和Col2。
执行代码后,生成的DataFrame完全符合你期望的格式,示例输出片段如下:
| Col1 | Col2 | |
|---|---|---|
| 0 | A | 1 |
| 1 | A | 2 |
| 2 | A | 3 |
| 3 | A | 4 |
| 4 | B | 1 |
| 5 | B | 3 |
| 6 | B | 4 |
| 7 | B | 6 |
| 8 | B | 7 |
内容的提问来源于stack exchange,提问作者Moh Bashawat
相关产品推荐
相关产品推荐

