python - Pandas to_csv 正在删除逗号
问题描述
我的熊猫数据框中有一列作为列表,当我将文件写入 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 不起作用。版本:熊猫==0.25.3
解决方案
如果您将 numpy 数组转换为列表,那么您将找到所需的结果。默认情况下,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)
推荐阅读
- ios - 我怎样才能等到视图控制器完成呈现并关闭以运行下一行代码?
- python - 如何向 ArrayField 添加默认值数组?
- java - 双倍不在 if 条件下 - 最佳实践?
- c++ - 在主线程上启动对话框等待工作线程的结果
- javascript - React 警告:收到非布尔属性“my-optional-property”的“true”
- javascript - 使用计费周期锚计算条带按比例分配的费率
- mysql - 有没有办法为另一个操作系统创建编译文件?
- html - 按两列输入600px媒体查询时显示两个数据产品
- docker - Docker 或 symfony missconfig。错误 SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: No such host is known
- postgresql - 如何检查 pg_proc 中的函数输入是否具有伪类型?