Pandas合并多列表时新增source列标记数据来源的实现方法
实现方法
你可以按照以下3步操作实现需求,同时后续新增更多列表时也能快速复用逻辑:
- 先给已有的DataFrame新增
source列标记来源为list_1
df['source'] = 'list_1'
- 将list_2转换为结构、数据类型和现有df一致的DataFrame,同时添加
source列标记来源为list_2
df2 = pd.DataFrame(list_2, columns = ['word', 'length'], dtype = str) df2['source'] = 'list_2'
- 合并两个DataFrame并重置索引即可得到期望结果
final_df = pd.concat([df, df2], ignore_index=True)
后续新增列表的优化方案
如果后续需要频繁新增不同的来源列表,可以把逻辑封装成复用函数,避免重复写代码:
def add_source_data(source_name, data_list, exist_df=None): # 生成临时DataFrame,保持列名、数据类型和原有结构一致 temp_df = pd.DataFrame(data_list, columns=['word', 'length'], dtype=str) temp_df['source'] = source_name # 没有传入已有df时直接返回临时df,有则合并后返回 return pd.concat([exist_df, temp_df], ignore_index=True) if exist_df is not None else temp_df
后续新增列表时只需要一行调用即可,比如新增list_3:
final_df = add_source_data('list_3', list_3, final_df)
内容的提问来源于stack exchange,提问作者peoplet
相关产品推荐
相关产品推荐

