我需要计算第一和第三个四分位在csv文件没有使用numpy和Pandas

2024-09-25 16:19:38 发布

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

文件看起来像3列整数。这就是我所拥有的 但它返回的是TypeError:slice索引必须是整数或无,或者有一个索引方法

import statistics

file = open("PokemonF.csv","r")
first_col=[]
sec_col=[]
third_col=[]
columns=[first_col]
for line in file :
    data = line.split(',')
    first_col.append(int(data[0]))
    sec_col.append(int(data[1]))
    third_col.append(int(data[2]))
for col_ in columns:
    min_col = min(first_col)
    sortedData = sorted(first_col)
    mid = len(first_col)/2
    if len(sortedData) % 2 == 0:
        lowerQ = statistics.median(sortedData[:mid])
        upperQ = statistics.median(sortedData[mid:])
    else:  
        lowerQ = statistics.median(sortedData[:mid])
        upperQ = statistics.median(sortedData[mid+1:])
    median_col = statistics.median(first_col)
    max_col = max(first_col)


    print("Minimum: {}".format(min_col))
    print("First quartile: {}".format(lowerQ))
    print("Median: {}".format(median_col))
    print("Maximum: {}".format(max_col))
file.close

Tags: formatdatacolminmaxfileintfirst
1条回答
网友
1楼 · 发布于 2024-09-25 16:19:38

我无法测试解决方案,因为您未能提供Minimal, complete, verifiable example,但我想我看到了您的问题:

mid = len(first_col)/2
if ...
    lowerQ = statistics.median(sortedData[:mid])
    upperQ = statistics.median(sortedData[mid:])

如果first_col有奇数个元素,那么mid是一个浮点值,例如7.5。不能将其用作字符串切片索引。请尝试整数除法:

^{pr2}$

根据您对“四分位”边界的本地定义,您可能需要添加1。在

相关问题 更多 >