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

标签 python pandas csv dataframe

我有以下字典:

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 是文本,我得到以下输出(输出示例)。 Output of the code .

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

最佳答案

这是 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替换为空字符串,所以看起来更干净。

关于python - 使用python将多行csv文件合并为一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45528345/

相关文章:

python - Pandas:应用函数,同时将字典拆分为列

node.js - 如何使用 papaparse 将对象数组正确转换为 CSV?

python - 让父方法返回子类实例

python - 为什么实例变量没有被识别

python - 如何更改 eve 的 IP 地址?

python - Pandas 从具有未知列名的给定数据类型的 csv 中读取列

python - 基于多索引比较选择行

python - FFMPEG 检测视频中的彩条和色调

Python 的 CSV 模块在 Django View 中的行为不同

javascript - Highcharts csv 数据加载