如何从长度不均的文本列表高效创建Pandas DataFrame
解决方案
要实现将out1与不规则长度的out2子列表转换为指定结构的DataFrame(空位置留空),可以按以下步骤操作:
- 确定
out2中子列表的最大长度,以此确定需要生成的额外列数(除A列外); - 对每个
out2的子列表补充空值,使其长度统一为最大长度; - 结合
out1与处理后的out2数据,构造DataFrame并指定列名。
示例代码
import pandas as pd out1 = ["I'm happy", 'This is crazy'] out2 = [["Im learning to be happy", "I'm troubled"], ["This is making me unhappy"]] # 计算out2中子列表的最大长度 max_col_num = max(len(sub_list) for sub_list in out2) # 将每个子列表补全至最大长度,用None填充空位置(pandas会显示为空单元格) processed_out2 = [sub + [None] * (max_col_num - len(sub)) for sub in out2] # 生成列名:A、B、C... column_names = ['A'] + [chr(ord('B') + idx) for idx in range(max_col_num)] # 组合数据并创建DataFrame result_df = pd.DataFrame( [[out1[i]] + processed_out2[i] for i in range(len(out1))], columns=column_names ) print(result_df)
输出结果
A B C 0 I'm happy Im learning to be happy I'm troubled 1 This is crazy This is making me unhappy None
如果希望空位置显示为空字符串而非None,只需将代码中的[None]替换为[""]即可。
内容的提问来源于stack exchange,提问作者dhc
相关产品推荐
相关产品推荐

