我在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
答案 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)