解决genfromtxt读取csv文件返回nan与\ufeff的问题

解决genfromtxt读取csv文件第一个数据返回nan或\ufeff的问题

本机环境

语言:python

编程工具:pycharm

硬件环境:win10 64位环境

问题如下

代码

import numpy as np
import matplotlib.pyplot as plt

plt.rcParams['font.family'] = ['Simhei']

#dtype转换数据类型,关键字设置为'U75', 不设置dtype,输出数据类型为nan
#delimiter=','表示数据由逗号分隔
#skip_header关键字可以设置为整数,表示跳过文件开头对应的行数
closing_bat = np.genfromtxt('closing.csv', encoding='utf-8', delimiter=',')
vol_bat = np.genfromtxt('vol.csv', encoding='utf-8', dtype='U75', delimiter=',')

print(closing_bat)
print(vol_bat)

csv如下

1.closing.csv
172.63,168.49,44.36
162.54,183.03,43.05

2.vol.csv
64.38,361.43,441.16
62.13,223.66,257.31

输出如下

[[ nan 168.49 44.36]
[162.54 183.03 43.05]]

[[’\ufeff64.38’ ‘361.43’ ‘441.16’]
[‘62.13’ ‘223.66’ ‘257.31’]]

如何解决

把encoding ='utf-8’改成encoding='utf-8-sig’就行了。

closing_bat = np.genfromtxt('BAT.csv', encoding='utf-8', delimiter=',')
vol_bat = np.genfromtxt('成交量.csv', encoding='utf-8', delimiter=',')

改成

  closing_bat = np.genfromtxt('closing.csv', encoding='utf-8-sig', delimiter=',')
   vol_bat = np.genfromtxt('vol.csv', encoding='utf-8-sig', dtype='U75', delimiter=',')

改完后,输出正常
[[172.63 168.49 44.36]
[162.54 183.03 43.05]]

[[‘64.38’ ‘361.43’ ‘441.16’]
[‘62.13’ ‘223.66’ ‘257.31’]]

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值