dataframe数据保存csv————数据转换问题

小夫子

问题

  • 在进行dataframe数据处理中,有时候会遇到其中某一列的元素均为列表,或者tensor的情况,形如:

    import pandas as pd
    import numpy as np
    data_test = {
            "a":[[1,2],[3,4],[5,6]],
            "b":[4,5,6],
            "c":[7,8,9]   
           }
    df_test = pd.DataFrame(data_test)

    image.png

  • 此时若将该data保存为csv格式

    df_test.to_csv("./test.csv",index=None) #不保留行索引
    df_read = pd.read_csv("./test.csv")
    type(df_read['a'][0])
    >>> str

    可以看到重新读取的data会将第一列原本为list的元素改为str类型,这为后续的处理带来了麻烦。

    解决办法

  • 我们首先将df格式的数据转换为numpy格式,然后进行储存。

    np.save("./np_data.npy",df_test.values) #df.values相当于将dataframe转换为array,但是不保留列名和行索引
    np_data = np.load('./np_data.npy',allow_pickle=True)
    df_read = pd.DataFrame(np_data)
    df_read.columns = ['a','b','c'] #重新附上列名
    type(df_read['a'][0])
    >>> list
阅读 328
0 声望
0 粉丝
0 条评论
你知道吗?

0 声望
0 粉丝
宣传栏