Şöyle bir fonksiyon yazmıştım. Bu fonksiyondan dönen sonuçları pandas.DataFrame ile birlikte kullandığım zaman aşağıdaki gibi bir çıktı elde ediyorum. Bu arada pandas varken neden veri ayıklamayla uğraştığımızı ben de bilmiyorum. Fonksiyonda veri tipi dönüşümü olmadığına dikkat edin. O yüzden pandas kullanmak daha sağlıklı.
Örnek olması için paylaştım. Kendinize göre düzenleyip istediğiniz sonucu elde edebilirsiniz.
Verilerim
hava,isi,nem,ruzgar,oyun
gunesli,sicak,yuksek,hafif,hayir
gunesli,sicak,yuksek,kuvvetli,hayir
bulutlu,sicak,yuksek,hafif,evet
yagmurlu,ilik,yuksek,hafif,evet
yagmurlu,soguk,normal,hafif,evet
yagmurlu,soguk,normal,kuvvetli,hayir
bulutlu,soguk,normal,kuvvetli,evet
gunesli,ilik,yuksek,hafif,hayir
gunesli,soguk,normal,hafif,evet
yagmurlu,ilik,normal,hafif,evet
gunesli,ilik,normal,kuvvetli,evet
bulutlu,ilik,yuksek,kuvvetli,evet
bulutlu,sicak,normal,hafif,evet
yagmurlu,ilik,yuksek,kuvvetli,hayir
Fonksiyon
import pandas
# CSV dosyasından verileri yükleme
def load_csv(filename):
result = {}
with open(filename) as dosya:
titles = [i.replace("\n","") if "\n" in i else i for i in dosya.readline().split(",")]
values = dosya.readlines()
for i in values:
temp = i.split(",")
for index,k in enumerate(temp):
v = result.get(titles[index],[])
v.append(k.replace("\n","") if "\n" in k else k)
result[titles[index]] = v
return result
veriler = load_csv("oyun.csv")
df = pandas.DataFrame(veriler)
Sonuç
hava isi nem ruzgar oyun
0 gunesli sicak yuksek hafif hayir
1 gunesli sicak yuksek kuvvetli hayir
2 bulutlu sicak yuksek hafif evet
3 yagmurlu ilik yuksek hafif evet
4 yagmurlu soguk normal hafif evet
5 yagmurlu soguk normal kuvvetli hayir
6 bulutlu soguk normal kuvvetli evet
7 gunesli ilik yuksek hafif hayir
8 gunesli soguk normal hafif evet
9 yagmurlu ilik normal hafif evet
10 gunesli ilik normal kuvvetli evet
11 bulutlu ilik yuksek kuvvetli evet
12 bulutlu sicak normal hafif evet
13 yagmurlu ilik yuksek kuvvetli hayir