首页 文章

使用numpy将带有 Headers 的列表列表转换为csv

提问于
浏览
1

我有一个列表列表,其中也包含 Headers . Headers 与所有列表不匹配,并非所有列表都具有相同的计数 . 像这样的东西:

[
[['Row', '1'], ['header1', '1.23'], ['header2','5.67'], ['header3','6.55']],
[['Row', '2'], ['header2','19.67'], ['header3','9.55']],
[['Row', '3'], ['header2','19.67'], ['header3','9.55'], ['header4','16.88']]
]

我想将其转换为CSV,其中填充了所有 Headers 值,并且缺少 Headers 值填充“N / A”

像这样:

Row, Header1, Header2, Header3, Header4
1, 1.23, 5.67, 6.55, N/A
2, N/A, 19.67, 9.55, N/A
3, N/A, 19.67, 9.55, 16.88

我想知道如何去做这件事

1 回答

  • 1

    您可以将数据结构转换为字典列表 . 然后你可以使用pandas.DataFrame.from_records

    import pandas as pd
    
    data = [
    [['Row', '1'], ['header1', '1.23'], ['header2','5.67'], ['header3','6.55']],
    [['Row', '2'], ['header2','19.67'], ['header3','9.55']],
    [['Row', '3'], ['header2','19.67'], ['header3','9.55'], ['header4','16.88']]
    ]
    
    df = pd.DataFrame.from_records(map(dict, data)).set_index("Row").fillna("N/A")
    #     header1 header2 header3 header4
    # Row                                
    # 1      1.23    5.67    6.55     N/A
    # 2       N/A   19.67    9.55     N/A
    # 3       N/A   19.67    9.55   16.88
    df.to_csv("file.csv")
    

相关问题