熊猫to_csv删除逗号

时间:2020-10-23 05:04:32

标签: python pandas export-to-csv

我在pandas数据框中有一个列作为列表,当我将文件写入csv时,它将删除列表内的逗号。

要复制的代码

import numpy as np
def to_vector(probs, num_classes):
    vec = np.zeros(num_classes)
    for i in probs:
        vec[i] = 1
    return vec


import pandas as pd
l1 = [[[1,5]],[[2,4]]]
num = 10
a = pd.DataFrame(l1, columns=['dep'])
a['Y_dept'] = a["dep"].apply(lambda x: to_vector(x, num))
a.to_csv('a_temp.csv', index=False)

但是当我读取同一文件时,Y_dept列内的逗号丢失了

b = pd.read_csv('a_temp.csv')
b.head()

    dep   Y_dept
0   [1, 5]  [0. 1. 0. 0. 0. 1. 0. 0. 0. 0.]
1   [2, 4]  [0. 0. 1. 0. 1. 0. 0. 0. 0. 0.]

预期输出:

    dep Y_dept
0   [1, 5]  [0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, ...
1   [2, 4]  [0.0, 0.0, 1.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, ...

quoting = csv.QUOTE_ALL不起作用。 版本:pandas == 0.25.3

1 个答案:

答案 0 :(得分:1)

如果将numpy数组转换为list,则将找到所需的结果。默认情况下,numpy数组不会使用逗号显示。计算机内部数据的表示形式不使用或不需要逗号,它们只是在这里显示。

import numpy as np
import pandas as pd

def to_vector(probs, num_classes):
  vec = np.zeros(num_classes)
  for i in probs:
    vec[i] = 1
  return list(vec)


l1 = [[[1,5]],[[2,4]]]
num = 10
a = pd.DataFrame(l1, columns=['dep'])
a['Y_dept'] = a["dep"].apply(lambda x: to_vector(x, num))
a.to_csv('a_temp.csv', index=False)