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

时间序列数据列标题笛卡尔积及差值生成技术问询

实现水果列笛卡尔积差值计算的方案

没问题,这需求很好实现!我会用Python的pandas库给你写一套完整的代码,完全符合你的要求——包括生成所有笛卡尔积配对(反向配对、自身配对都保留),计算每对第一个水果减第二个的差值。

步骤1:准备示例数据

先假设你的DataFrame长这样(带日期列和若干水果列):

import pandas as pd
from itertools import product

# 创建示例DataFrame
data = {
    'date': ['2024-01-01', '2024-01-02', '2024-01-03'],
    'grapes': [10, 12, 8],
    'pears': [15, 13, 17],
    'apples': [20, 18, 22]
}
df = pd.DataFrame(data)

步骤2:生成所有水果列配对并计算差值

接下来我们提取所有水果列,生成它们的笛卡尔积,然后逐个计算差值并添加为新列:

# 提取所有水果列(排除日期列)
fruit_columns = [col for col in df.columns if col != 'date']

# 生成所有笛卡尔积配对(包括自身配对和反向配对)
fruit_pairs = list(product(fruit_columns, repeat=2))

# 遍历每一对,计算差值并添加新列
for fruit1, fruit2 in fruit_pairs:
    # 生成新列名,格式为"fruit1_fruit2"
    new_col = f"{fruit1}_{fruit2}"
    # 计算第一个水果减第二个的差值
    df[new_col] = df[fruit1] - df[fruit2]

步骤3:查看结果

运行完上面的代码后,你的DataFrame就会新增所有配对的差值列。比如df.head()会输出:

dategrapespearsapplesgrapes_grapesgrapes_pearsgrapes_applespears_grapespears_pearspears_applesapples_grapesapples_pearsapples_apples
2024-01-011015200-5-1050-51050
2024-01-021213180-1-610-5650
2024-01-03817220-9-1490-51450

正如你所说,这里会包含grapes_pears和pears_grapes(差值符号相反)、grapes_grapes(差值为0)这类情况,后续你可以根据需求添加过滤逻辑(比如只保留fruit1 >= fruit2的配对,或者排除自身配对)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 09:18:35