错误处理numpy.float?

2024-03-29 10:40:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用python处理csv文件。你知道吗

我编写了以下脚本来处理该文件:

import pickle
import numpy as np
from csv import reader, writer


dic1 = {'a': 2, 'b': 2, 'c': 2}
dic2 = {'a': 2,'b': 2,'c': 0}
number = dict()

for k in dic1:
    number[k] = dic1[k] + dic2[k]

ctVar = {'a': [0.093323751331788565, -1.0872670058072453, '', 8.3574590513050264], 'b': [0.053169909627947334, -1.0825742255395172, '', 8.0033788558001984], 'c': [-0.44681777279768059, 2.2380488442495348]}

Var = {}

for k in number:
    Var[k] = number[k]


def findIndex(myList, number):
    n = str(number)
    m = len(n)
    for elt in myList:
        e = str(elt)
        l = len(e)
        mi = min(m,l)
        if e[:mi-1] == n[:mi-1]:
            return myList.index(elt)

def sortContent(myList):
    if '' in myList:
        result = ['']
        myList.remove('')
    else:
        result = []

    myList.sort()
    result = myList + result
    return result

csv文件的摘录如下:(信息:空格很重要。为了增加可读性,我记下了它们(但它们应该是空的)

列包含重复多次的少数元素(包括“”)。你知道吗

a

0.0933237513

-1.0872670058

0.0933237513

BL

BL

0.0933237513

0.0933237513

0.0933237513

BL

第二列:

b

0.0531699096

-1.0825742255

0.0531699096

BL

BL

0.0531699096

0.0531699096

0.0531699096

BL

第三栏:

c

-0.4468177728

2.2380488443

-0.4468177728

-0.4468177728

-0.4468177728

-0.4468177728

-0.4468177728

2.2380488443

2.2380488443

我刚刚发布了一个代码的摘录(在这里我遇到了一个问题),我们看不到它的实用性。基本上,这是一个更大的代码,我用它来修改这个csv文件和编码它不同的一部分。你知道吗

在这个摘录中,我尝试在某个点(第68行)对包含数字和“”的列表的元素进行排序。你知道吗

当我删除执行此操作的行时,打印的元素是每列的元素(没有任何重复)。你知道吗

问题是,当我尝试对它们进行排序时,不再考虑“”。然而,当我用包含“”的列表测试我的函数sort内容时,它运行得非常好。你知道吗

我认为这个问题与使用numpy.float64个我列表中的元素。所以我converted将所有这些元素都转换成浮点数,但问题仍然存在。你知道吗

任何帮助都将不胜感激!你知道吗


Tags: 文件csvinimportnumpy元素number列表
1条回答
网友
1楼 · 发布于 2024-03-29 10:40:26

我假设您的意思是在其他东西上使用sortContent(很明显,如果您希望ctVar中预定义列表中的值按特定顺序排列,您可以在代码中对它们进行排序,而不是在运行时对它们进行排序)。你知道吗

让我们把你的sortContent一件一件地看一遍。你知道吗

if '' in myList:
    result = ['']
    myList.remove('')

如果传入的list对象(我们称之为list 1)有项'',那么创建一个新的list对象(我们称之为list 2),只使用'',并从list 1中删除''的第一个实例。你知道吗

mylist.Sort()

现在,对列表1的内容进行排序。你知道吗

result = myList + result

现在用列表1和列表2的内容创建一个新的列表对象(称为列表3)。你知道吗

return result

请记住,list 1(传入的list对象)仍然删除了''。你知道吗

相关问题 更多 >