读取导入csv csv报错iterable expected, not float

示例代码
import pandas as pd
import re
import csv

data = pd.read_csv('nuojia.csv', encoding='utf-8')
# print(data)
data = data.values

# 把第二列的数值数据提取出来,存入num.csv中
with open('num.csv', 'a+', newline='') as csvfile:
writer = csv.writer(csvfile)
data1 = data[:, 1]
print(data1)
# print(len(data[:, 1]))
for i in range(len(data1)):
# print(data1[i])
num = re.findall('[0-9]+', data1[i])
# print(num)
# writer.writerow(num)


注意:1,csv导入大部分是字典格式
2,列表的话一般要求,列表里面的是字符串格式
3,如果是一列数据不是字符串,写入csv的话会报错iterable expected, not float
那就把数据存入列表中,导入整个列表,再把数据在excel中转置(选中数据,复制,选择性粘贴,转置),代码如下:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这个错误提示是因为在读取CSV文件时,程序期望得到一个可迭代的对象,但是却得到了一个numpy.float64类型的数据。可能是在读取CSV文件时,数据类型不一致导致的。需要检查一下CSV文件的格式和数据类型是否正确。 ### 回答2: _csv.error: iterable expected, not numpy.float64 这个错误的意思是在读取CSV文件时,程序期望得到的是一个可迭代的对象,但实际得到的是一个Numpy中的float64数据类型。 造成这个错误的原因可能是数据行的某些列中包含了Numpy中的float64数据类型。在CSV文件中,每行数据应该是以逗号作为分隔符的一组数据,如果其中包含了Numpy中的float64类型的数据,Python看到这种数据类型默认会将其作为单个对象处理,而不是一组数据,因此就会出现上述错误。 解决这个问题的方法可以将包含这种数据类型的列转化为Python中的List类型,或者使用Pandas等其他数据处理工具进行数据的读取和处理。要将包含这种数据类型的列转换为Python中的List,可以使用tolist()函数。例如,给定一个包含Numpy.float64数据类型的列的数据框df,可以通过以下方法来转换这列: `df['column_name'] = df['column_name'].tolist()` 其中,column_name是需要转化的列名。这样,就可以将这列数据转化为Python中的List类型,避免出现_csv.error: iterable expected, not numpy.float64这个错误。 ### 回答3: 这个错误通常出现在使用pandas库读取csv文件时。通常情况下,读取csv文件会返回一个DataFrame对象,其中包含多行多列的数据。然而,如果在读取csv文件时发现某些列的数据类型不一致,可能会导致出现这个错误。 在这种情况下,pandas会尝试将不同数据类型的数据转换为同一数据类型。如果某些数据无法转换,则会出现“iterable expected,not numpy.float64”的错误。 解决这个错误的方法是检查csv文件中各列的数据类型,并确保它们都是一致的。例如,如果csv文件中有一个数值列和一个文本列,可以尝试将文本列转换为数值列,或者将数值列转换为文本列,以确保它们都具有相同的数据类型。 另一种解决这个错误的方法是添加一个参数,将不同数据类型的数据转换为字符串类型。例如,可以在读取csv文件时添加“dtype=str”参数,将所有列的数据类型转换为字符串类型,来避免这个错误的出现。 总之,避免这个错误的方法是确保csv文件中所有列的数据类型都是一致的,并且在读取csv文件时加上适当的参数,以确保数据被正确地转换。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值