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

如何使用Pandas生成指定范围数值的两列DataFrame并保存?

修正Pandas生成笛卡尔积DataFrame并保存的代码

需求:使用Pandas生成包含指定范围数值的两列DataFrame,给定参数range1=2,range2=3,期望生成的DataFrame格式如下:

1   1
1   2
1   3
2   1
2   2
2   3

你提供的原代码存在问题:每次循环都会创建仅含单行的DataFrame,写入CSV时默认覆盖之前的内容,最终CSV文件里只会保留最后一行(2,3),无法生成所有需要的组合。

以下是两种可行的修正方案:

方案一:先收集所有数据再生成DataFrame

import pandas as pd

d1 = 2
d2 = 3
# 提前收集所有(i,j)组合
data_list = []
for i in range(1, d1 + 1):
    for j in range(1, d2 + 1):
        data_list.append((i, j))

# 一次性生成完整DataFrame并保存
df = pd.DataFrame(data_list, columns=['proteinA', 'proteinB'])
# index=False 用于去掉Pandas默认添加的索引列
df.to_csv('prediction_test_123.csv', index=False)

方案二:用itertools简化笛卡尔积生成

如果想让代码更简洁,可以用itertools.product直接生成两个范围的笛卡尔积:

import pandas as pd
from itertools import product

d1 = 2
d2 = 3
# 直接生成1~d1和1~d2的所有组合
data = product(range(1, d1 + 1), range(1, d2 + 1))

df = pd.DataFrame(data, columns=['proteinA', 'proteinB'])
df.to_csv('prediction_test_123.csv', index=False)

两种方案都能生成符合要求的DataFrame,并且一次性写入CSV,避免了循环覆盖的问题,同时通过index=False保证输出格式和期望一致。

内容的提问来源于stack exchange,提问作者Dr. Krishna Kant Gupta

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 05:42:11