Panda'yı kullanmadan bu çözümü (aşağıya doğru) elde etmeye çalışıyorum. Temel olarak, bir CSV dosyasında Sağlıklı hastaların ve Hasta hastalarının Ortalamaları almak. Dosyada 14 kategori (yani 13 satır) bulunan 303 hasta bulunmaktadır. Bu verilerden bazıları kaybolmaktadır, bu nedenle? 13 numaralı sıra ile hastaları ayırır; hastaları 0'dan büyük olan her şey hasta tarafından sağlıklıdır ve hiçbir şey = veya 0'ın altındadır. Onları bölmek için bir yol buldum ama sağlıklı hastalar ve Hasta hastaları için ortalamaları almak için satırları nasıl ekleyeceğimi biliyorum. Devam etmek nasıl bir fikirCSV Python sütun/satır ortalamaları
Please enter a training file name: train.csv
Total Lines Processed: 303
Total Healthy Count: 164
Total Ill Count: 139
Averages of Healthy Patients:
[52.59, 0.56, 2.79, 129.25, 242.64, 0.14, 0.84, 158.38, 0.14, 0.59, 1.41, 0.27, 3.77, 0.00]
Averages of Ill Patients:
[56.63, 0.82, 3.59, 134.57, 251.47, 0.16, 1.17, 139.26, 0.55, 1.57, 1.83, 1.13, 5.80, 2.04]
Seperation Values are:
[54.61, 0.69, 3.19, 131.91, 247.06, 0.15, 1.00, 148.82, 0.34, 1.08, 1.62, 0.70, 4.79, 1.02]
hala benim koduna gitmek için uzun bir yol var, sadece hastaların ortalamalar almak için bir basit yol arıyorum harika olurdu. Benim şu anki yöntemim sadece sütun 13'ü alıyor ama yukarıdaki gibi 13'e ihtiyacım var. Bu sorunu çözmeyi denemem gereken herhangi bir yardım, harika ve çok takdir edilecek. yorumlarda istendi ne
import csv
#turn csv files into a list of lists
with open('train.csv') as csvfile:
reader = csv.reader(csvfile, delimiter=',')
csv_data = list(reader)
i_list = []
for row in csv_data:
if (row and int(row[13]) > 0):
i_list.append(int(row[13]))
H_list = []
for row in csv_data:
if (row and int(row[13]) <= 0):
H_list.append(int(row[13]))
for row in reader:
Icount = len(i_list)
IPavg = sum(i_list)/len(i_list)
Hcount = len(H_list)
HPavg = sum(H_list)/len(H_list)
file = open("train.csv")
numline = len(file.readlines())
print(numline)
print("Total amount of healthy patients " + str(Icount))
print("Total amount of ill patients " + str(Hcount))
print("Averages of healthy patients " + str(HPavg))
print("Averages of ill patients " + str(IPavg)
Örnek
CVS File
A B C D N(so on to column 13)
10 .50 ? 44 0
4 4.5 20 34 0
12 ? 33 23 3 (this one would be Ill patient)
11 3.2 32 33 0
[![CSVfile][1]][1]
Sen numpy en ortalamasını denemelisiniz: http://docs.scipy.org/doc/numpy-1.10.1/reference/generated/numpy.average.html çok daha kolay istatistiksel işi yapmak için yapar :) – Adib
Şunu genişletebilir misiniz: "Şu anki yöntemim sadece sütun 13'ü alır ama yukarıdaki gibi 13'e ihtiyacım var." – Adib
@Adib Evet Numaranın bir dereceye kadar bilinmemesine rağmen, bu problem için kullanamamış olmama rağmen, henüz pandalarla aynı sınıfta değil. 13 sütun bölümüyle ilgili olarak, benim mevcut kodumun ne olduğu, yalnızca hastaya sağ olup olmadığının söylenişini söyleyen, bu tür bir ihtiyaç duyulan sütun 13'ün bilgisini almaktır. Fakat sağlıklı olduklarını bildikten sonra, her bir sütunun bu sağlıklı hasta sayısına dikkat etmeliyim, böylece onlar için Ortalamaları alabilirim. – David