我正在做一個簡短的功能,從串列中找到中位數。
這是 csv 檔案的一部分:
Index,Height(Inches),Weight(Pounds)
1,65.78331,112.9925
2,71.51521,136.4873
3,69.39874,153.0269
4,68.2166,142.3354
5,67.78781,144.2971
6,68.69784,123.3024
7,69.80204,141.4947
8,70.01472,136.4623
9,67.90265,112.3723
10,66.78236,120.6672
11,66.48769,127.4516
12,67.62333,114.143
13,68.30248,125.6107
14,67.11656,122.4618
15,68.27967,116.0866
16,71.0916,139.9975
17,66.461,129.5023
18,68.64927,142.9733
19,71.23033,137.9025
20,67.13118,124.0449
21,67.83379,141.2807
22,68.87881,143.5392
23,63.48115,97.90191
24,68.42187,129.5027
25,67.62804,141.8501
26,67.20864,129.7244
27,70.84235,142.4235
有人可以幫助我嗎?我也嘗試使用Counter來計算專案的數量。我想找到第三列的中位數。我預先存在的功能是:
def median():
n = (len(file_data))
file_data.sort()
if n%2==0:
median1 = file_data[n//2]
median2 = file_data[n//2-1]
median = (median1 median2)/2
mediankg1 = median/2.2046
else:
median = file_data[n//2]
mediankg = median/2.2046
print("MEDIAN")
print("Median is " str(median) " pounds")
print("OR")
print("Median is " str(mediankg1) " kilograms")
median()
uj5u.com熱心網友回復:
使用 pandas 讀取您的 CSV 檔案,然后呼叫 median
uj5u.com熱心網友回復:
您應該為此使用 Pandas,因為它內置了用于這些任務的函式。安裝檔案可以在這里找到:https : //pandas.pydata.org/docs/getting_started/install.html
以下代碼應該足以讓您入門:
import pandas as pd
df = pd.read_csv('/path/to/file.csv', header=None)
median_col = df.median(axis=0) # Median of each column
median_row = df.median(axis=1) # Median of each row
median_row_3 = median_row[2] # Median of 3rd column
uj5u.com熱心網友回復:
如果您不想使用熊貓,這應該可以作業:
import csv
file_data = [float(row[2]) for row in csv.reader(open(csvfile), delimiter=',')]
n = len(file_data)
file_data.sort()
median = file_data[n//2]
if n%2==0:
median = (median file_data[n//2-1])/2
mediankg1 = median/2.2046
print("MEDIAN")
print("Median is " str(median) " pounds")
print("OR")
print("Median is " str(mediankg1) " kilograms")
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/329518.html
