【问题标题】:Split, clean and convert a list of list into dataframe in Pandas在 Pandas 中拆分、清理并将列表列表转换为数据框
【发布时间】:2020-10-26 11:48:59
【问题描述】:

我有一个列表如下:

[['id:ZC0000218734', 'version: forth', 'date:2020-07-06'], ['v1:\n                            undefined', 'v2: undefined'], ['type:park', 'address:zhejiang...'], ['type:park', 'address:zhejiang...']]

如何删除重复列表 (ie: ['type:park', 'address:zhejiang...']),由 : 拆分,清理 \n 和空格,然后将其转换为数据框?

预期的结果是这样的:

             id version      date  ...         v2       type      address
0  ZC0000218734   forth  2020/7/6  ...  undefined  undefined  zhejiang...

谢谢。

【问题讨论】:

    标签: python-3.x pandas list


    【解决方案1】:

    我尽量避免使用 map 和 str.strip 重复 split,然后在嵌套列表理解中创建字典,最后传递给 DataFrame 构造函数:

    L = [['id:ZC0000218734', 'version: forth', 'date:2020-07-06'], ['v1:\n                            undefined', 'v2: undefined'], ['type:park', 'address:zhejiang...'], ['type:park', 'address:zhejiang...']]
    

    out = dict([map(str.strip, y.split(':')) for x in L for y in x])
    
    df = pd.DataFrame([out])
    print (df)
                 id version        date         v1         v2  type      address
    0  ZC0000218734   forth  2020-07-06  undefined  undefined  park  zhejiang...
    

    【讨论】:

      【解决方案2】:
      lst = [['id:ZC0000218734', 'version: forth', 'date:2020-07-06'], ['v1:\n                            undefined', 'v2: undefined'], ['type:park', 'address:zhejiang...'], ['type:park', 'address:zhejiang...']]
      
      d = {v.split(':')[0]: v.split(':')[1].strip() for l in lst for v in l}
      
      df = pd.DataFrame([d])
      print(df)
      

      打印:

                   id version        date         v1         v2  type      address
      0  ZC0000218734   forth  2020-07-06  undefined  undefined  park  zhejiang...
      

      【讨论】:

        猜你喜欢
        • 2020-10-27
        • 2018-08-26
        • 2021-03-22
        • 1970-01-01
        • 2017-06-22
        • 2017-08-29
        • 2020-05-22
        • 1970-01-01
        • 2020-09-02
        相关资源
        最近更新 更多