Skip to main content
 首页 » 编程设计

python之使用python将多行csv文件合并为一个

2025年05月04日17itcoder

我有以下字典:

details = {"Primary_key" : [{'key_1': 'val',  'key_3': "val", 'key_5': ['val_1', 'val_2', 'val_3'], 'key_6': 'val'}, {'key_2': 'val', 'key_3': 'val', 'key_5': ['val_1','val_2'], 'key_6': 'val'}, {'key_1': 'val', 'key_2': 'val', 'key_3': 'val', 'key_4': 'val', 'key_5': ['val_1', 'val_2'], 'key_6': 'val'}] } 

我有以下代码将其转换为 csv 文件。

    import pandas as pd 
    for name,val in details.items(): 
        df = pd.DataFrame.from_dict(details[name]) 
        df.index = [name]*len(df) 
        print df.index 
        with open("my_file.csv",'a') as f: 
            df.to_csv(f) 

key_x 是标题,primary_key 是名称,val 是文本,我得到以下输出(输出示例)。 .

有没有办法可以获取以下格式的 csv 文件?

请您参考如下方法:

这是 pd.concat(垂直串联)的一个很好的用例:

import pandas as pd 
df_list = [] 
for name,val in details.items(): 
    df = pd.DataFrame.from_dict(details[name]) 
    df.index = [name] * len(df) 
    df_list.append(df) 
 
pd.concat(df_list).fillna('').to_csv('my_file.csv') 

这还涉及到使用df.fillna('')将NaN替换为空字符串,所以看起来更干净。