基于两个不等长列表创建DataFrame的方法求助
解决方案
方法一:使用itertools.product生成笛卡尔积
通过生成两个列表的所有配对组合,直接创建目标DataFrame:
import pandas as pd from itertools import product # 定义原始列表 list1 = ["apple","banana"] list2 = ["M","T","W","TR","F","S"] # 生成fruit和day的全部配对 all_combinations = product(list1, list2) # 转换为指定列名的DataFrame result_df = pd.DataFrame(all_combinations, columns=["fruit", "day"])
方法二:使用Pandas交叉连接(Cross Merge)
如果list2原本是列格式数据源(比如Excel中的单列),可先转为DataFrame,再通过交叉连接实现需求:
import pandas as pd # 将列格式的日期数据转为DataFrame df_days = pd.DataFrame({"day": ["M","T","W","TR","F","S"]}) # 将水果列表转为DataFrame df_fruits = pd.DataFrame({"fruit": ["apple","banana"]}) # 执行交叉连接生成所有组合 result_df = df_fruits.merge(df_days, how="cross")
两种方法最终都会生成你需要的两列DataFrame,每个水果会与所有日期一一配对。
内容的提问来源于stack exchange,提问作者SayZer
相关产品推荐
相关产品推荐

