pandas读取数组,显示为str,而实际应为list,解决方法

本博文借助笔者可以自己根据数据生成csv文件,重新生成一组csv文件,避免将str内复杂的列表读取成str之后难以操作的问题,本博客记录该解决方案的背景和方法。

1. 背景

在将一些数据从一个平台,换到另一个平台去处理时,使用了常用的csv文件去存储数据。

最开始时,直接将narry格式数据,用dic字典处理,暴力存储过程,产生了错误。

d = {'feature':test_fea, 'label':y_test}
import pandas as pd
df = pd.DataFrame(d, index=[0])
df.to_csv('ayi.csv')
# test_fea.shape() (1084,10)
# y_test.shape (1084,)

上端代码会直接报错,按照错误指示,参考一些教程,将两个数据粗暴转换成单列表元素,代码修改如下,即可正常转换为csv文件。

d = {'feature':[test_fea], 'label':[y_test]}
import pandas as pd
df = pd.DataFrame(d, index=[0])
df.to_csv('ayi.csv')

然而,用另一个平台读取该数据时,该dataframe仅有一个元素。

import pandas as pd
df = pd.read_csv('ayi.csv')
df.head()
fea = df.iloc[0,1]

此时的输出结果,是一个str格式,大致类似于‘[[1,2,3]\n[3,4,5].....[2,4,6]]'。

为了得到列表,考虑过用正特表达式的方法,有一篇博文也是这么用的。但是在我的环境下,代码比较繁琐。借助自己可以修改cdv的优势,重新生层一组csv文件并读取。

2.解决方法

关键在于对csv的生成和处理方法,将直接pd.DataFrame(dic),df.to_csv()换成以下方法。

with open('ayi.csv','w', newline='') as csvfile:
  writer = csv.writer(csvfile)
  for row in list(y_test):
    writer.writerow(row)

写入之后的文件,打开就变得更人性化了。

随后正常读取:

label = pd.read_csv('ayi.csv')
label.head()

可以正常显示所有的数组数据,解决读取后是str的问题。

3. 总结

写入csv文件时候,按行写入每一个维度数据,可避免读取后数组变为str的尴尬。

 

  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值