如何使用pandas对不均匀数据表执行笛卡尔乘积得到288行结果
pandas实现多列取值笛卡尔乘积方案
实现步骤
- 第一步:导入pandas依赖库
import pandas as pd
- 第二步:读取Excel输入文件,替换下方文件路径为你的实际文件路径
# 若读取指定sheet可增加sheet_name参数,比如sheet_name='Sheet1' df = pd.read_excel('你的输入文件路径.xlsx')
- 第三步:提取每一列的非空取值
# 以下代码默认会对每列的重复值去重,如果不需要去重,删除末尾的.unique()即可 col_value_list = [df[col].dropna().unique() for col in df.columns]
- 第四步:生成笛卡尔乘积结果集
# 基于多列取值生成笛卡尔乘积,列名与原Excel列名保持一致 result = pd.MultiIndex.from_product(col_value_list, names=df.columns).to_frame(index=False)
- 可选:导出结果到Excel文件
result.to_excel('输出文件路径.xlsx', index=False)
结果验证
执行完成后可运行print(result.shape)查看结果维度,按照你给出的各列取值数量计算,结果第一维应为288,符合预期。
内容的提问来源于stack exchange,提问作者Abbas
相关产品推荐
相关产品推荐

