代码之家  ›  专栏  ›  技术社区  ›  user3668129

保存和加载列表值?

  •  0
  • user3668129  · 技术社区  · 3 年前

    我有一个数据框,其中一列包含一个值列表:

    例子: type(df['col_list'].values[0]) = list

    我把这个数据框保存为csv文件( df.to_csv('my_file.csv') )

    当我加载数据帧时( df = pd.read_csv('my_file.csv') ) 包含值列表的列将更改为 string 类型: 类型(df['col_list'].值[0]) = str

    转换为列表时( list(df['col_list'].values[0] )我得到的是字符列表而不是值列表。

    我如何保存/加载dataframe它的哪一列包含值列表?

    3 回复  |  直到 3 年前
        1
  •  1
  •   GregJames    3 年前

    这是因为该表被保存为CSV并序列化列表的值。csv格式无法按原样保存列表对象。试着用另一种格式保存 df.to_pickle('test.df') .然后你可以用 read_pickle

    阅读更多关于存钱泡菜的信息 here

        2
  •  0
  •   Anurag Dhadse    3 年前

    使用 JSON HDF 文件格式,而不是CSV。CSV文件格式对于存储列表或对象集合来说非常不方便。

        3
  •  0
  •   Raymond Kwok    3 年前

    我认为阿努拉格的建议很好。但万一你想保持现状,这就行了

    import json
    df['col_list'] = df['col_list'].apply(json.loads)
    

    如果你已经转换了 col_list 转换为JSON文本之前 pd.to_csv 通过

    df['col_list'] = df['col_list'].apply(json.dumps)