Python Pandas’ta Dataframe Yapıları 2. Bölüm

Published by: 0

Dataframe yapılarının Serilerden farkı satır ve sütunlardan oluşmasıdır.

Daha karmaşık hali olarak da tanımlanabilir.
Aşağıdaki kodlar Jupyter Notebook üzerinden çalıştırılmaktadır.
Bu bölümde filtreleme, isin(), isnull(), notnull(), between(), duplicated(), drop_duplicates(), unique(), set_index(), loc[ ] ve iloc[ ] metodlarını örnekler üzerinde inceleyeceğiz.

filtreleme, isin(), isnull() ve notnull() metodları

In [1]:
import pandas as pd # her zamanki gibi öncelikle kullanacağımız pandas kütüphanesini import ediyoruz.
In [5]:
pd.read_csv("millitakim.csv") # Gördüğününz gibi masaüstündeki bir klasörde yer alan bir csv dosyasını okumaya çalıştığımızda 
# bu şekilde bir hata veriyor. Çünkü pandas csv dosyamızın yolunu bulamıyor.
---------------------------------------------------------------------------
FileNotFoundError                         Traceback (most recent call last)
<ipython-input-5-a5e95e62a823> in <module>
----> 1 pd.read_csv("millitakim.csv") # Gördüğününz gibi masaüstündeki bir klasörde yer alan bir csv dosyasını okumaya çalıştığımızda
      2 # bu şekilde bir hata veriyor. Çünkü pandas csv dosyamızın yolunu bulamıyor.

~\Anaconda3\lib\site-packages\pandas\io\parsers.py in parser_f(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, squeeze, prefix, mangle_dupe_cols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, nrows, na_values, keep_default_na, na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, dayfirst, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, escapechar, comment, encoding, dialect, tupleize_cols, error_bad_lines, warn_bad_lines, skipfooter, doublequote, delim_whitespace, low_memory, memory_map, float_precision)
    676                     skip_blank_lines=skip_blank_lines)
    677 
--> 678         return _read(filepath_or_buffer, kwds)
    679 
    680     parser_f.__name__ = name

~\Anaconda3\lib\site-packages\pandas\io\parsers.py in _read(filepath_or_buffer, kwds)
    438 
    439     # Create the parser.
--> 440     parser = TextFileReader(filepath_or_buffer, **kwds)
    441 
    442     if chunksize or iterator:

~\Anaconda3\lib\site-packages\pandas\io\parsers.py in __init__(self, f, engine, **kwds)
    785             self.options['has_index_names'] = kwds['has_index_names']
    786 
--> 787         self._make_engine(self.engine)
    788 
    789     def close(self):

~\Anaconda3\lib\site-packages\pandas\io\parsers.py in _make_engine(self, engine)
   1012     def _make_engine(self, engine='c'):
   1013         if engine == 'c':
-> 1014             self._engine = CParserWrapper(self.f, **self.options)
   1015         else:
   1016             if engine == 'python':

~\Anaconda3\lib\site-packages\pandas\io\parsers.py in __init__(self, src, **kwds)
   1706         kwds['usecols'] = self.usecols
   1707 
-> 1708         self._reader = parsers.TextReader(src, **kwds)
   1709 
   1710         passed_names = self.names is None

pandas\_libs\parsers.pyx in pandas._libs.parsers.TextReader.__cinit__()

pandas\_libs\parsers.pyx in pandas._libs.parsers.TextReader._setup_parser_source()

FileNotFoundError: File b'millitakim.csv' does not exist
In [2]:
import os # os metodunu kullanmak için önce import etmemiz lazım
os.chdir("C:/Users/E-A-S/Desktop/pandas-kaynak") # Yukarıdaki hatanın olmasının sebebi program os metodu içinde tanımlanan dosya yollarına(path) bakar
#os'nin chdir fonksiyonu sayesinde o yolların içine yeni bir yol daha eklemiş oluruz. Böylelikle artık program dosya arayacağı
#zaman bu dizine de bakar.
In [3]:
takımlar=pd.read_csv("millitakim.csv") # Gördüğünüz gibi artık masaüstündeki bir klasörde olan bir csv dosyasını okuyabiliyoruz.
takımlar
Out[3]:
Numara İsim Görev Doğum Tarihi Yaş Takım Boy Ayak Maç Gol Milyon Euro
0 1 Harun Tekin kaleci 17-6-1989 29 Bursa 1,87 m sağ ayak 2 NaN 2.5
1 23 Sinan Bolat kaleci 3-9-1988 29 Royal FC 1,88 m sağ ayak 6 NaN 1.2
2 12 Serkan Kirintili kaleci 15-2-1985 33 Konya 1,86 m sağ ayak 3 NaN 0.8
3 4 Caglar Söyüncü stoper 23-5-1996 22 Sc Freiburg 1,87 m sağ ayak 16 1.0 18
4 22 Kaan Ayhan stoper 10-11-1994 23 Düsseldorf 1,85 m sağ ayak 13 NaN 3
5 24 Ertugrul Ersoy stoper 13-2-1997 21 Bursa 1,87 m sağ ayak 0 NaN 1.75
6 3 Hasan Ali Kaldirim sol bek 9-12-1989 28 Fenerbahçe 1,83 m sol ayak 25 NaN 3.25
7 6 Ömer Bayram sol bek 27-7-1991 26 Akhisar 1,75 m sol ayak 2 NaN 2
8 2 Sener Özbayrakli sağ bek 23-1-1990 28 Fenerbahçe 1,71 m sağ ayak 17 NaN 2
9 13 Zeki Celik sağ bek 17-2-1997 21 İstanbul 1,80 m sağ ayak 1 NaN 0.8
10 5 Okay Yokuslu önlibero 9-3-1994 24 Trabzon 1,91 m sağ ayak 14 1.0 7.50
11 15 Mehmet Topal önlibero 3-3-1986 32 Fenerbahçe 1,87 m cift ayakli 78 2.0 2.5
12 14 Mahmut Tekdemir önlibero 20-1-1988 30 Başakşehir 1,78 m sağ ayak 5 NaN 2
13 25 Tarkan Serbest önlibero 19-4-1994 24 Austria Vien 1,84 m sağ ayak 1 NaN 1.5
14 8 Oguzhan Özyakup orta saha 23-9-1992 25 Beşiktaş 1,80 m sağ ayak 35 1.0 8
15 11 Yusuf Yazici on numara 29-1-1997 21 Trabzon 1,83 m sol ayak 9 NaN 12
16 19 Yunus Malli on numara 24-2-1992 26 Wolsburg 1,79 m sağ ayak 18 1.0 9
17 20 Emre Akbaba on numara 4-10-1992 25 Alanya 1,80 m cift ayakli 5 1.0 5.5
18 16 Deniz Türüc on numara 29-1-1993 25 Kayseri 1,75 m sol ayak 2 NaN 3.5
19 21 Irfan Can Kahveci on numara 15-7-1995 22 Başakşehir 1,76 m sol ayak 4 NaN 2.5
20 27 Berkay Özcan on numara 15-2-1998 20 Stuttgart 1,80 m sağ ayak 1 NaN 2.5
21 18 Kenan Karaman sol kanat 5-3-1994 24 Hannover 1,89 m sağ ayak 3 NaN 1.5
22 17 Cengiz Ünder sağ kanat 14-7-1997 20 Roma 1,73 m sol ayak 11 4.0 27
23 7 Serdar Gürler sağ kanat 14-9-1991 26 Osmanlı 1,75 m sağ ayak 4 NaN 3.5
24 10 Umut Bulut santrafor 15-3-1983 35 Kayseri 1,84 m sağ ayak 39 10.0 0.45
In [4]:
takımlar("Takım") =="Fenerbahçe" # bu hatanın sebebi sütun yapıları işlem yapıldığında () parantez değil [] parantez kullanılması gerekliliğindendir.
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-4-1c0858b01def> in <module>
----> 1 takımlar("Takım") =="Fenerbahçe" # bu hatanın sebebi sütun yapıları işlem yapıldığında () parantez değil [] parantez kullanılması gerekliliğindendir.

TypeError: 'DataFrame' object is not callable
In [5]:
takımlar["Takım"] =="Fenerbahçe" # takım sütununun Fenerbahçe olmasının True ve Faltse olararak değerlendirilmesi
Out[5]:
0     False
1     False
2     False
3     False
4     False
5     False
6      True
7     False
8      True
9     False
10    False
11     True
12    False
13    False
14    False
15    False
16    False
17    False
18    False
19    False
20    False
21    False
22    False
23    False
24    False
Name: Takım, dtype: bool
In [6]:
fenerliler=takımlar["Takım"] =="Fenerbahçe" # Fenerbahçe olup olmamasına göre Takım sütunu fenerliler tablosuna atılmaktadır.
takımlar[fenerliler]    # satede fenerli olanlar gösterilmektedir.
Out[6]:
Numara İsim Görev Doğum Tarihi Yaş Takım Boy Ayak Maç Gol Milyon Euro
6 3 Hasan Ali Kaldirim sol bek 9-12-1989 28 Fenerbahçe 1,83 m sol ayak 25 NaN 3.25
8 2 Sener Özbayrakli sağ bek 23-1-1990 28 Fenerbahçe 1,71 m sağ ayak 17 NaN 2
11 15 Mehmet Topal önlibero 3-3-1986 32 Fenerbahçe 1,87 m cift ayakli 78 2.0 2.5
In [7]:
ön=takımlar["Görev"] == "önlibero" # görev sütunu önlibero olanlar ön değişkenine atılmıştır.
In [8]:
takımlar[fenerliler & ön] # &(ve) bağlacı ile önlibero ve fenerli olanları filtreliyoruz.
Out[8]:
Numara İsim Görev Doğum Tarihi Yaş Takım Boy Ayak Maç Gol Milyon Euro
11 15 Mehmet Topal önlibero 3-3-1986 32 Fenerbahçe 1,87 m cift ayakli 78 2.0 2.5
In [9]:
yaş=takımlar["Yaş"]>25 # 25 yaş üctü olanları filtrelerip değişkene atıyoruz.
takımlar[yaş] # 25 yaş üstü olanları gösteriyoruz.
Out[9]:
Numara İsim Görev Doğum Tarihi Yaş Takım Boy Ayak Maç Gol Milyon Euro
0 1 Harun Tekin kaleci 17-6-1989 29 Bursa 1,87 m sağ ayak 2 NaN 2.5
1 23 Sinan Bolat kaleci 3-9-1988 29 Royal FC 1,88 m sağ ayak 6 NaN 1.2
2 12 Serkan Kirintili kaleci 15-2-1985 33 Konya 1,86 m sağ ayak 3 NaN 0.8
6 3 Hasan Ali Kaldirim sol bek 9-12-1989 28 Fenerbahçe 1,83 m sol ayak 25 NaN 3.25
7 6 Ömer Bayram sol bek 27-7-1991 26 Akhisar 1,75 m sol ayak 2 NaN 2
8 2 Sener Özbayrakli sağ bek 23-1-1990 28 Fenerbahçe 1,71 m sağ ayak 17 NaN 2
11 15 Mehmet Topal önlibero 3-3-1986 32 Fenerbahçe 1,87 m cift ayakli 78 2.0 2.5
12 14 Mahmut Tekdemir önlibero 20-1-1988 30 Başakşehir 1,78 m sağ ayak 5 NaN 2
16 19 Yunus Malli on numara 24-2-1992 26 Wolsburg 1,79 m sağ ayak 18 1.0 9
23 7 Serdar Gürler sağ kanat 14-9-1991 26 Osmanlı 1,75 m sağ ayak 4 NaN 3.5
24 10 Umut Bulut santrafor 15-3-1983 35 Kayseri 1,84 m sağ ayak 39 10.0 0.45
In [10]:
takımlar[yaş|ön] # veya başlacı ile filtreleme yapmak. Yaşı 25 ten büyük veya önlibero olanlar
Out[10]:
Numara İsim Görev Doğum Tarihi Yaş Takım Boy Ayak Maç Gol Milyon Euro
0 1 Harun Tekin kaleci 17-6-1989 29 Bursa 1,87 m sağ ayak 2 NaN 2.5
1 23 Sinan Bolat kaleci 3-9-1988 29 Royal FC 1,88 m sağ ayak 6 NaN 1.2
2 12 Serkan Kirintili kaleci 15-2-1985 33 Konya 1,86 m sağ ayak 3 NaN 0.8
6 3 Hasan Ali Kaldirim sol bek 9-12-1989 28 Fenerbahçe 1,83 m sol ayak 25 NaN 3.25
7 6 Ömer Bayram sol bek 27-7-1991 26 Akhisar 1,75 m sol ayak 2 NaN 2
8 2 Sener Özbayrakli sağ bek 23-1-1990 28 Fenerbahçe 1,71 m sağ ayak 17 NaN 2
10 5 Okay Yokuslu önlibero 9-3-1994 24 Trabzon 1,91 m sağ ayak 14 1.0 7.50
11 15 Mehmet Topal önlibero 3-3-1986 32 Fenerbahçe 1,87 m cift ayakli 78 2.0 2.5
12 14 Mahmut Tekdemir önlibero 20-1-1988 30 Başakşehir 1,78 m sağ ayak 5 NaN 2
13 25 Tarkan Serbest önlibero 19-4-1994 24 Austria Vien 1,84 m sağ ayak 1 NaN 1.5
16 19 Yunus Malli on numara 24-2-1992 26 Wolsburg 1,79 m sağ ayak 18 1.0 9
23 7 Serdar Gürler sağ kanat 14-9-1991 26 Osmanlı 1,75 m sağ ayak 4 NaN 3.5
24 10 Umut Bulut santrafor 15-3-1983 35 Kayseri 1,84 m sağ ayak 39 10.0 0.45
In [11]:
takımlar[yaş&ön|fenerliler] # 3 kritere göre filtreleme yapılmaktadır.
Out[11]:
Numara İsim Görev Doğum Tarihi Yaş Takım Boy Ayak Maç Gol Milyon Euro
6 3 Hasan Ali Kaldirim sol bek 9-12-1989 28 Fenerbahçe 1,83 m sol ayak 25 NaN 3.25
8 2 Sener Özbayrakli sağ bek 23-1-1990 28 Fenerbahçe 1,71 m sağ ayak 17 NaN 2
11 15 Mehmet Topal önlibero 3-3-1986 32 Fenerbahçe 1,87 m cift ayakli 78 2.0 2.5
12 14 Mahmut Tekdemir önlibero 20-1-1988 30 Başakşehir 1,78 m sağ ayak 5 NaN 2
In [12]:
takımlar["Takım"].isin(["Fenerbahçe","Kayseri"]) # takımların içind fenerbahçe ve kayseri olanları boolen olaran geri döndürmektedir.
Out[12]:
0     False
1     False
2     False
3     False
4     False
5     False
6      True
7     False
8      True
9     False
10    False
11     True
12    False
13    False
14    False
15    False
16    False
17    False
18     True
19    False
20    False
21    False
22    False
23    False
24     True
Name: Takım, dtype: bool
In [13]:
m=takımlar["Takım"].isin(["Fenerbahçe","Kayseri"])
takımlar[m] # # takımların içind fenerbahçe ve kayseri olanları boolen olaran geri döndürmektedir.
Out[13]:
Numara İsim Görev Doğum Tarihi Yaş Takım Boy Ayak Maç Gol Milyon Euro
6 3 Hasan Ali Kaldirim sol bek 9-12-1989 28 Fenerbahçe 1,83 m sol ayak 25 NaN 3.25
8 2 Sener Özbayrakli sağ bek 23-1-1990 28 Fenerbahçe 1,71 m sağ ayak 17 NaN 2
11 15 Mehmet Topal önlibero 3-3-1986 32 Fenerbahçe 1,87 m cift ayakli 78 2.0 2.5
18 16 Deniz Türüc on numara 29-1-1993 25 Kayseri 1,75 m sol ayak 2 NaN 3.5
24 10 Umut Bulut santrafor 15-3-1983 35 Kayseri 1,84 m sağ ayak 39 10.0 0.45
In [15]:
takımlar["Gol"].isnull() # Gol sütununu null olup olmamasına göre True False olarak geri döndürmek için kullanılır.
Out[15]:
0      True
1      True
2      True
3     False
4      True
5      True
6      True
7      True
8      True
9      True
10    False
11    False
12     True
13     True
14    False
15     True
16    False
17    False
18     True
19     True
20     True
21     True
22    False
23     True
24    False
Name: Gol, dtype: bool
In [17]:
golnull=takımlar["Gol"].isnull() # isnull komutunu notnull olarak değiştirirsek tam tersi işlem sağlamış olacağız
takımlar[golnull] # Belli bir sütunun sadece null (NaN) olan değerlerini göstermek için kullanılır.
Out[17]:
Numara İsim Görev Doğum Tarihi Yaş Takım Boy Ayak Maç Gol Milyon Euro
0 1 Harun Tekin kaleci 17-6-1989 29 Bursa 1,87 m sağ ayak 2 NaN 2.5
1 23 Sinan Bolat kaleci 3-9-1988 29 Royal FC 1,88 m sağ ayak 6 NaN 1.2
2 12 Serkan Kirintili kaleci 15-2-1985 33 Konya 1,86 m sağ ayak 3 NaN 0.8
4 22 Kaan Ayhan stoper 10-11-1994 23 Düsseldorf 1,85 m sağ ayak 13 NaN 3
5 24 Ertugrul Ersoy stoper 13-2-1997 21 Bursa 1,87 m sağ ayak 0 NaN 1.75
6 3 Hasan Ali Kaldirim sol bek 9-12-1989 28 Fenerbahçe 1,83 m sol ayak 25 NaN 3.25
7 6 Ömer Bayram sol bek 27-7-1991 26 Akhisar 1,75 m sol ayak 2 NaN 2
8 2 Sener Özbayrakli sağ bek 23-1-1990 28 Fenerbahçe 1,71 m sağ ayak 17 NaN 2
9 13 Zeki Celik sağ bek 17-2-1997 21 İstanbul 1,80 m sağ ayak 1 NaN 0.8
12 14 Mahmut Tekdemir önlibero 20-1-1988 30 Başakşehir 1,78 m sağ ayak 5 NaN 2
13 25 Tarkan Serbest önlibero 19-4-1994 24 Austria Vien 1,84 m sağ ayak 1 NaN 1.5
15 11 Yusuf Yazici on numara 29-1-1997 21 Trabzon 1,83 m sol ayak 9 NaN 12
18 16 Deniz Türüc on numara 29-1-1993 25 Kayseri 1,75 m sol ayak 2 NaN 3.5
19 21 Irfan Can Kahveci on numara 15-7-1995 22 Başakşehir 1,76 m sol ayak 4 NaN 2.5
20 27 Berkay Özcan on numara 15-2-1998 20 Stuttgart 1,80 m sağ ayak 1 NaN 2.5
21 18 Kenan Karaman sol kanat 5-3-1994 24 Hannover 1,89 m sağ ayak 3 NaN 1.5
23 7 Serdar Gürler sağ kanat 14-9-1991 26 Osmanlı 1,75 m sağ ayak 4 NaN 3.5

Dataframe- between(), duplicated(), drop_duplicates() ve unique() Metodları

In [20]:
takımlar=pd.read_csv("millitakim.csv")
takımlar["Milyon Euro"] =takımlar["Milyon Euro"].astype("float") # belli bir sütunun tipini değiştirmek. Biz floata çevirdik.
takımlar
Out[20]:
Numara İsim Görev Doğum Tarihi Yaş Takım Boy Ayak Maç Gol Milyon Euro
0 1 Harun Tekin kaleci 17-6-1989 29 Bursa 1,87 m sağ ayak 2 NaN 2.50
1 23 Sinan Bolat kaleci 3-9-1988 29 Royal FC 1,88 m sağ ayak 6 NaN 1.20
2 12 Serkan Kirintili kaleci 15-2-1985 33 Konya 1,86 m sağ ayak 3 NaN 0.80
3 4 Caglar Söyüncü stoper 23-5-1996 22 Sc Freiburg 1,87 m sağ ayak 16 1.0 18.00
4 22 Kaan Ayhan stoper 10-11-1994 23 Düsseldorf 1,85 m sağ ayak 13 NaN 3.00
5 24 Ertugrul Ersoy stoper 13-2-1997 21 Bursa 1,87 m sağ ayak 0 NaN 1.75
6 3 Hasan Ali Kaldirim sol bek 9-12-1989 28 Fenerbahçe 1,83 m sol ayak 25 NaN 3.25
7 6 Ömer Bayram sol bek 27-7-1991 26 Akhisar 1,75 m sol ayak 2 NaN 2.00
8 2 Sener Özbayrakli sağ bek 23-1-1990 28 Fenerbahçe 1,71 m sağ ayak 17 NaN 2.00
9 13 Zeki Celik sağ bek 17-2-1997 21 İstanbul 1,80 m sağ ayak 1 NaN 0.80
10 5 Okay Yokuslu önlibero 9-3-1994 24 Trabzon 1,91 m sağ ayak 14 1.0 7.50
11 15 Mehmet Topal önlibero 3-3-1986 32 Fenerbahçe 1,87 m cift ayakli 78 2.0 2.50
12 14 Mahmut Tekdemir önlibero 20-1-1988 30 Başakşehir 1,78 m sağ ayak 5 NaN 2.00
13 25 Tarkan Serbest önlibero 19-4-1994 24 Austria Vien 1,84 m sağ ayak 1 NaN 1.50
14 8 Oguzhan Özyakup orta saha 23-9-1992 25 Beşiktaş 1,80 m sağ ayak 35 1.0 8.00
15 11 Yusuf Yazici on numara 29-1-1997 21 Trabzon 1,83 m sol ayak 9 NaN 12.00
16 19 Yunus Malli on numara 24-2-1992 26 Wolsburg 1,79 m sağ ayak 18 1.0 9.00
17 20 Emre Akbaba on numara 4-10-1992 25 Alanya 1,80 m cift ayakli 5 1.0 5.50
18 16 Deniz Türüc on numara 29-1-1993 25 Kayseri 1,75 m sol ayak 2 NaN 3.50
19 21 Irfan Can Kahveci on numara 15-7-1995 22 Başakşehir 1,76 m sol ayak 4 NaN 2.50
20 27 Berkay Özcan on numara 15-2-1998 20 Stuttgart 1,80 m sağ ayak 1 NaN 2.50
21 18 Kenan Karaman sol kanat 5-3-1994 24 Hannover 1,89 m sağ ayak 3 NaN 1.50
22 17 Cengiz Ünder sağ kanat 14-7-1997 20 Roma 1,73 m sol ayak 11 4.0 27.00
23 7 Serdar Gürler sağ kanat 14-9-1991 26 Osmanlı 1,75 m sağ ayak 4 NaN 3.50
24 10 Umut Bulut santrafor 15-3-1983 35 Kayseri 1,84 m sağ ayak 39 10.0 0.45
In [27]:
yaş=takımlar["Yaş"].between(20,25) # 20-25 yaş aralığını bir değişkene atadık.
In [28]:
takımlar[yaş] # belli bir araılık için birr sütun değerlerine göre filtreleme
Out[28]:
Numara İsim Görev Doğum Tarihi Yaş Takım Boy Ayak Maç Gol Milyon Euro
3 4 Caglar Söyüncü stoper 23-5-1996 22 Sc Freiburg 1,87 m sağ ayak 16 1.0 18.00
4 22 Kaan Ayhan stoper 10-11-1994 23 Düsseldorf 1,85 m sağ ayak 13 NaN 3.00
5 24 Ertugrul Ersoy stoper 13-2-1997 21 Bursa 1,87 m sağ ayak 0 NaN 1.75
9 13 Zeki Celik sağ bek 17-2-1997 21 İstanbul 1,80 m sağ ayak 1 NaN 0.80
10 5 Okay Yokuslu önlibero 9-3-1994 24 Trabzon 1,91 m sağ ayak 14 1.0 7.50
13 25 Tarkan Serbest önlibero 19-4-1994 24 Austria Vien 1,84 m sağ ayak 1 NaN 1.50
14 8 Oguzhan Özyakup orta saha 23-9-1992 25 Beşiktaş 1,80 m sağ ayak 35 1.0 8.00
15 11 Yusuf Yazici on numara 29-1-1997 21 Trabzon 1,83 m sol ayak 9 NaN 12.00
17 20 Emre Akbaba on numara 4-10-1992 25 Alanya 1,80 m cift ayakli 5 1.0 5.50
18 16 Deniz Türüc on numara 29-1-1993 25 Kayseri 1,75 m sol ayak 2 NaN 3.50
19 21 Irfan Can Kahveci on numara 15-7-1995 22 Başakşehir 1,76 m sol ayak 4 NaN 2.50
20 27 Berkay Özcan on numara 15-2-1998 20 Stuttgart 1,80 m sağ ayak 1 NaN 2.50
21 18 Kenan Karaman sol kanat 5-3-1994 24 Hannover 1,89 m sağ ayak 3 NaN 1.50
22 17 Cengiz Ünder sağ kanat 14-7-1997 20 Roma 1,73 m sol ayak 11 4.0 27.00
In [32]:
me=takımlar["Milyon Euro"].between(5,20) # bu metod hem alt sınırı hem üst sınırı alır
takımlar[me] # 5-20 aralığında milyon euro sütunu için filtreleme yaptık
Out[32]:
Numara İsim Görev Doğum Tarihi Yaş Takım Boy Ayak Maç Gol Milyon Euro
3 4 Caglar Söyüncü stoper 23-5-1996 22 Sc Freiburg 1,87 m sağ ayak 16 1.0 18.0
10 5 Okay Yokuslu önlibero 9-3-1994 24 Trabzon 1,91 m sağ ayak 14 1.0 7.5
14 8 Oguzhan Özyakup orta saha 23-9-1992 25 Beşiktaş 1,80 m sağ ayak 35 1.0 8.0
15 11 Yusuf Yazici on numara 29-1-1997 21 Trabzon 1,83 m sol ayak 9 NaN 12.0
16 19 Yunus Malli on numara 24-2-1992 26 Wolsburg 1,79 m sağ ayak 18 1.0 9.0
17 20 Emre Akbaba on numara 4-10-1992 25 Alanya 1,80 m cift ayakli 5 1.0 5.5
In [33]:
takımlar["Görev"] # belli bir sütunda aynı olan bir sürü değer olabilir burdaki gibi. Örneğin kaleci 3 defa geçmektedir.
Out[33]:
0        kaleci
1        kaleci
2        kaleci
3        stoper
4        stoper
5        stoper
6       sol bek
7       sol bek
8       sağ bek
9       sağ bek
10     önlibero
11     önlibero
12     önlibero
13     önlibero
14    orta saha
15    on numara
16    on numara
17    on numara
18    on numara
19    on numara
20    on numara
21    sol kanat
22    sağ kanat
23    sağ kanat
24    santrafor
Name: Görev, dtype: object
In [35]:
aa=takımlar["Görev"].duplicated() # bu komut aynı olanları buluyor. duplicated() shift+tab tuşlarına basarsanız keep='first'
takımlar[aa]                      # diye bir parametre olduğu görülür. Bu aynı olanların sadece ilkini atmaya yarar. 
                                  # Az önce 3 tane kaleci vardı. İlk karşılaşılan kaleci satırı kaldırıldı ve 2 tane kaldı.
                                  # keep='last' yaparsak bu seferde tekrar edenlerden son satırı siler.
Out[35]:
Numara İsim Görev Doğum Tarihi Yaş Takım Boy Ayak Maç Gol Milyon Euro
1 23 Sinan Bolat kaleci 3-9-1988 29 Royal FC 1,88 m sağ ayak 6 NaN 1.20
2 12 Serkan Kirintili kaleci 15-2-1985 33 Konya 1,86 m sağ ayak 3 NaN 0.80
4 22 Kaan Ayhan stoper 10-11-1994 23 Düsseldorf 1,85 m sağ ayak 13 NaN 3.00
5 24 Ertugrul Ersoy stoper 13-2-1997 21 Bursa 1,87 m sağ ayak 0 NaN 1.75
7 6 Ömer Bayram sol bek 27-7-1991 26 Akhisar 1,75 m sol ayak 2 NaN 2.00
9 13 Zeki Celik sağ bek 17-2-1997 21 İstanbul 1,80 m sağ ayak 1 NaN 0.80
11 15 Mehmet Topal önlibero 3-3-1986 32 Fenerbahçe 1,87 m cift ayakli 78 2.0 2.50
12 14 Mahmut Tekdemir önlibero 20-1-1988 30 Başakşehir 1,78 m sağ ayak 5 NaN 2.00
13 25 Tarkan Serbest önlibero 19-4-1994 24 Austria Vien 1,84 m sağ ayak 1 NaN 1.50
16 19 Yunus Malli on numara 24-2-1992 26 Wolsburg 1,79 m sağ ayak 18 1.0 9.00
17 20 Emre Akbaba on numara 4-10-1992 25 Alanya 1,80 m cift ayakli 5 1.0 5.50
18 16 Deniz Türüc on numara 29-1-1993 25 Kayseri 1,75 m sol ayak 2 NaN 3.50
19 21 Irfan Can Kahveci on numara 15-7-1995 22 Başakşehir 1,76 m sol ayak 4 NaN 2.50
20 27 Berkay Özcan on numara 15-2-1998 20 Stuttgart 1,80 m sağ ayak 1 NaN 2.50
23 7 Serdar Gürler sağ kanat 14-9-1991 26 Osmanlı 1,75 m sağ ayak 4 NaN 3.50
In [38]:
takımlar.drop_duplicates(subset="Görev") # bu metod sayesinde tekrar eden satırların default olarak sadece ilki alınır. 
                                         # keep='first' parametresi seçenekleri ile ilk son vb sıralamalardaki değerde alınabilir
Out[38]:
Numara İsim Görev Doğum Tarihi Yaş Takım Boy Ayak Maç Gol Milyon Euro
0 1 Harun Tekin kaleci 17-6-1989 29 Bursa 1,87 m sağ ayak 2 NaN 2.50
3 4 Caglar Söyüncü stoper 23-5-1996 22 Sc Freiburg 1,87 m sağ ayak 16 1.0 18.00
6 3 Hasan Ali Kaldirim sol bek 9-12-1989 28 Fenerbahçe 1,83 m sol ayak 25 NaN 3.25
8 2 Sener Özbayrakli sağ bek 23-1-1990 28 Fenerbahçe 1,71 m sağ ayak 17 NaN 2.00
10 5 Okay Yokuslu önlibero 9-3-1994 24 Trabzon 1,91 m sağ ayak 14 1.0 7.50
14 8 Oguzhan Özyakup orta saha 23-9-1992 25 Beşiktaş 1,80 m sağ ayak 35 1.0 8.00
15 11 Yusuf Yazici on numara 29-1-1997 21 Trabzon 1,83 m sol ayak 9 NaN 12.00
21 18 Kenan Karaman sol kanat 5-3-1994 24 Hannover 1,89 m sağ ayak 3 NaN 1.50
22 17 Cengiz Ünder sağ kanat 14-7-1997 20 Roma 1,73 m sol ayak 11 4.0 27.00
24 10 Umut Bulut santrafor 15-3-1983 35 Kayseri 1,84 m sağ ayak 39 10.0 0.45
In [42]:
takımlar["Görev"].unique() # belli bir sütunun kaç farklı değeri olduğunu gösteriyor. 
Out[42]:
array(['kaleci', 'stoper', 'sol bek', 'sağ bek', 'önlibero', 'orta saha',
       'on numara', 'sol kanat', 'sağ kanat', 'santrafor'], dtype=object)
In [43]:
len(takımlar["Görev"].unique()) #metodu sayesinde kaç farklı değer olduğu da bulunulabilir. 
#takımlar["Görev"].nunique() satıtırıda aynı işlevi görür.
Out[43]:
10

Dataframe- set_index(), loc[ ] ve iloc[ ] Metodları

In [73]:
takımlar=pd.read_csv("millitakim.csv") # dosyamızı tekrer yükledik. 
takımlar
Out[73]:
Numara İsim Görev Doğum Tarihi Yaş Takım Boy Ayak Maç Gol Milyon Euro
0 1 Harun Tekin kaleci 17-6-1989 29 Bursa 1,87 m sağ ayak 2 NaN 2.5
1 23 Sinan Bolat kaleci 3-9-1988 29 Royal FC 1,88 m sağ ayak 6 NaN 1.2
2 12 Serkan Kirintili kaleci 15-2-1985 33 Konya 1,86 m sağ ayak 3 NaN 0.8
3 4 Caglar Söyüncü stoper 23-5-1996 22 Sc Freiburg 1,87 m sağ ayak 16 1.0 18
4 22 Kaan Ayhan stoper 10-11-1994 23 Düsseldorf 1,85 m sağ ayak 13 NaN 3
5 24 Ertugrul Ersoy stoper 13-2-1997 21 Bursa 1,87 m sağ ayak 0 NaN 1.75
6 3 Hasan Ali Kaldirim sol bek 9-12-1989 28 Fenerbahçe 1,83 m sol ayak 25 NaN 3.25
7 6 Ömer Bayram sol bek 27-7-1991 26 Akhisar 1,75 m sol ayak 2 NaN 2
8 2 Sener Özbayrakli sağ bek 23-1-1990 28 Fenerbahçe 1,71 m sağ ayak 17 NaN 2
9 13 Zeki Celik sağ bek 17-2-1997 21 İstanbul 1,80 m sağ ayak 1 NaN 0.8
10 5 Okay Yokuslu önlibero 9-3-1994 24 Trabzon 1,91 m sağ ayak 14 1.0 7.50
11 15 Mehmet Topal önlibero 3-3-1986 32 Fenerbahçe 1,87 m cift ayakli 78 2.0 2.5
12 14 Mahmut Tekdemir önlibero 20-1-1988 30 Başakşehir 1,78 m sağ ayak 5 NaN 2
13 25 Tarkan Serbest önlibero 19-4-1994 24 Austria Vien 1,84 m sağ ayak 1 NaN 1.5
14 8 Oguzhan Özyakup orta saha 23-9-1992 25 Beşiktaş 1,80 m sağ ayak 35 1.0 8
15 11 Yusuf Yazici on numara 29-1-1997 21 Trabzon 1,83 m sol ayak 9 NaN 12
16 19 Yunus Malli on numara 24-2-1992 26 Wolsburg 1,79 m sağ ayak 18 1.0 9
17 20 Emre Akbaba on numara 4-10-1992 25 Alanya 1,80 m cift ayakli 5 1.0 5.5
18 16 Deniz Türüc on numara 29-1-1993 25 Kayseri 1,75 m sol ayak 2 NaN 3.5
19 21 Irfan Can Kahveci on numara 15-7-1995 22 Başakşehir 1,76 m sol ayak 4 NaN 2.5
20 27 Berkay Özcan on numara 15-2-1998 20 Stuttgart 1,80 m sağ ayak 1 NaN 2.5
21 18 Kenan Karaman sol kanat 5-3-1994 24 Hannover 1,89 m sağ ayak 3 NaN 1.5
22 17 Cengiz Ünder sağ kanat 14-7-1997 20 Roma 1,73 m sol ayak 11 4.0 27
23 7 Serdar Gürler sağ kanat 14-9-1991 26 Osmanlı 1,75 m sağ ayak 4 NaN 3.5
24 10 Umut Bulut santrafor 15-3-1983 35 Kayseri 1,84 m sağ ayak 39 10.0 0.45
In [74]:
takımlar.set_index("İsim") # index sütununu istediğimiz sütun yapabiliyoruz. Aslında read_csv metodununda index_col 
                           # parametresi yardımı ile de istediğimiz sütun index yapılabilir
Out[74]:
Numara Görev Doğum Tarihi Yaş Takım Boy Ayak Maç Gol Milyon Euro
İsim
Harun Tekin 1 kaleci 17-6-1989 29 Bursa 1,87 m sağ ayak 2 NaN 2.5
Sinan Bolat 23 kaleci 3-9-1988 29 Royal FC 1,88 m sağ ayak 6 NaN 1.2
Serkan Kirintili 12 kaleci 15-2-1985 33 Konya 1,86 m sağ ayak 3 NaN 0.8
Caglar Söyüncü 4 stoper 23-5-1996 22 Sc Freiburg 1,87 m sağ ayak 16 1.0 18
Kaan Ayhan 22 stoper 10-11-1994 23 Düsseldorf 1,85 m sağ ayak 13 NaN 3
Ertugrul Ersoy 24 stoper 13-2-1997 21 Bursa 1,87 m sağ ayak 0 NaN 1.75
Hasan Ali Kaldirim 3 sol bek 9-12-1989 28 Fenerbahçe 1,83 m sol ayak 25 NaN 3.25
Ömer Bayram 6 sol bek 27-7-1991 26 Akhisar 1,75 m sol ayak 2 NaN 2
Sener Özbayrakli 2 sağ bek 23-1-1990 28 Fenerbahçe 1,71 m sağ ayak 17 NaN 2
Zeki Celik 13 sağ bek 17-2-1997 21 İstanbul 1,80 m sağ ayak 1 NaN 0.8
Okay Yokuslu 5 önlibero 9-3-1994 24 Trabzon 1,91 m sağ ayak 14 1.0 7.50
Mehmet Topal 15 önlibero 3-3-1986 32 Fenerbahçe 1,87 m cift ayakli 78 2.0 2.5
Mahmut Tekdemir 14 önlibero 20-1-1988 30 Başakşehir 1,78 m sağ ayak 5 NaN 2
Tarkan Serbest 25 önlibero 19-4-1994 24 Austria Vien 1,84 m sağ ayak 1 NaN 1.5
Oguzhan Özyakup 8 orta saha 23-9-1992 25 Beşiktaş 1,80 m sağ ayak 35 1.0 8
Yusuf Yazici 11 on numara 29-1-1997 21 Trabzon 1,83 m sol ayak 9 NaN 12
Yunus Malli 19 on numara 24-2-1992 26 Wolsburg 1,79 m sağ ayak 18 1.0 9
Emre Akbaba 20 on numara 4-10-1992 25 Alanya 1,80 m cift ayakli 5 1.0 5.5
Deniz Türüc 16 on numara 29-1-1993 25 Kayseri 1,75 m sol ayak 2 NaN 3.5
Irfan Can Kahveci 21 on numara 15-7-1995 22 Başakşehir 1,76 m sol ayak 4 NaN 2.5
Berkay Özcan 27 on numara 15-2-1998 20 Stuttgart 1,80 m sağ ayak 1 NaN 2.5
Kenan Karaman 18 sol kanat 5-3-1994 24 Hannover 1,89 m sağ ayak 3 NaN 1.5
Cengiz Ünder 17 sağ kanat 14-7-1997 20 Roma 1,73 m sol ayak 11 4.0 27
Serdar Gürler 7 sağ kanat 14-9-1991 26 Osmanlı 1,75 m sağ ayak 4 NaN 3.5
Umut Bulut 10 santrafor 15-3-1983 35 Kayseri 1,84 m sağ ayak 39 10.0 0.45
In [48]:
takımlar.set_index("İsim",inplace=True) # aşağıdaki hata bu satırın iki defa çalıştırılmasından kaynaklanmaktadır. Program bu işlem zaten yapılmış diyor :)
takımlar
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
~\Anaconda3\lib\site-packages\pandas\core\indexes\base.py in get_loc(self, key, method, tolerance)
   3077             try:
-> 3078                 return self._engine.get_loc(key)
   3079             except KeyError:

pandas\_libs\index.pyx in pandas._libs.index.IndexEngine.get_loc()

pandas\_libs\index.pyx in pandas._libs.index.IndexEngine.get_loc()

pandas\_libs\hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item()

pandas\_libs\hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item()

KeyError: 'İsim'

During handling of the above exception, another exception occurred:

KeyError                                  Traceback (most recent call last)
<ipython-input-48-7663925020e6> in <module>
----> 1 takımlar.set_index("İsim",inplace=True)
      2 takımlar

~\Anaconda3\lib\site-packages\pandas\core\frame.py in set_index(self, keys, drop, append, inplace, verify_integrity)
   3907                 names.append(None)
   3908             else:
-> 3909                 level = frame[col]._values
   3910                 names.append(col)
   3911                 if drop:

~\Anaconda3\lib\site-packages\pandas\core\frame.py in __getitem__(self, key)
   2686             return self._getitem_multilevel(key)
   2687         else:
-> 2688             return self._getitem_column(key)
   2689 
   2690     def _getitem_column(self, key):

~\Anaconda3\lib\site-packages\pandas\core\frame.py in _getitem_column(self, key)
   2693         # get column
   2694         if self.columns.is_unique:
-> 2695             return self._get_item_cache(key)
   2696 
   2697         # duplicate columns & possible reduce dimensionality

~\Anaconda3\lib\site-packages\pandas\core\generic.py in _get_item_cache(self, item)
   2487         res = cache.get(item)
   2488         if res is None:
-> 2489             values = self._data.get(item)
   2490             res = self._box_item_values(item, values)
   2491             cache[item] = res

~\Anaconda3\lib\site-packages\pandas\core\internals.py in get(self, item, fastpath)
   4113 
   4114             if not isna(item):
-> 4115                 loc = self.items.get_loc(item)
   4116             else:
   4117                 indexer = np.arange(len(self.items))[isna(self.items)]

~\Anaconda3\lib\site-packages\pandas\core\indexes\base.py in get_loc(self, key, method, tolerance)
   3078                 return self._engine.get_loc(key)
   3079             except KeyError:
-> 3080                 return self._engine.get_loc(self._maybe_cast_indexer(key))
   3081 
   3082         indexer = self.get_indexer([key], method=method, tolerance=tolerance)

pandas\_libs\index.pyx in pandas._libs.index.IndexEngine.get_loc()

pandas\_libs\index.pyx in pandas._libs.index.IndexEngine.get_loc()

pandas\_libs\hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item()

pandas\_libs\hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item()

KeyError: 'İsim'
In [75]:
takımlar.set_index("İsim",inplace=True) # inplace yardımıyla bu işlemi kalıcı hale getirdik.
In [76]:
takımlar
Out[76]:
Numara Görev Doğum Tarihi Yaş Takım Boy Ayak Maç Gol Milyon Euro
İsim
Harun Tekin 1 kaleci 17-6-1989 29 Bursa 1,87 m sağ ayak 2 NaN 2.5
Sinan Bolat 23 kaleci 3-9-1988 29 Royal FC 1,88 m sağ ayak 6 NaN 1.2
Serkan Kirintili 12 kaleci 15-2-1985 33 Konya 1,86 m sağ ayak 3 NaN 0.8
Caglar Söyüncü 4 stoper 23-5-1996 22 Sc Freiburg 1,87 m sağ ayak 16 1.0 18
Kaan Ayhan 22 stoper 10-11-1994 23 Düsseldorf 1,85 m sağ ayak 13 NaN 3
Ertugrul Ersoy 24 stoper 13-2-1997 21 Bursa 1,87 m sağ ayak 0 NaN 1.75
Hasan Ali Kaldirim 3 sol bek 9-12-1989 28 Fenerbahçe 1,83 m sol ayak 25 NaN 3.25
Ömer Bayram 6 sol bek 27-7-1991 26 Akhisar 1,75 m sol ayak 2 NaN 2
Sener Özbayrakli 2 sağ bek 23-1-1990 28 Fenerbahçe 1,71 m sağ ayak 17 NaN 2
Zeki Celik 13 sağ bek 17-2-1997 21 İstanbul 1,80 m sağ ayak 1 NaN 0.8
Okay Yokuslu 5 önlibero 9-3-1994 24 Trabzon 1,91 m sağ ayak 14 1.0 7.50
Mehmet Topal 15 önlibero 3-3-1986 32 Fenerbahçe 1,87 m cift ayakli 78 2.0 2.5
Mahmut Tekdemir 14 önlibero 20-1-1988 30 Başakşehir 1,78 m sağ ayak 5 NaN 2
Tarkan Serbest 25 önlibero 19-4-1994 24 Austria Vien 1,84 m sağ ayak 1 NaN 1.5
Oguzhan Özyakup 8 orta saha 23-9-1992 25 Beşiktaş 1,80 m sağ ayak 35 1.0 8
Yusuf Yazici 11 on numara 29-1-1997 21 Trabzon 1,83 m sol ayak 9 NaN 12
Yunus Malli 19 on numara 24-2-1992 26 Wolsburg 1,79 m sağ ayak 18 1.0 9
Emre Akbaba 20 on numara 4-10-1992 25 Alanya 1,80 m cift ayakli 5 1.0 5.5
Deniz Türüc 16 on numara 29-1-1993 25 Kayseri 1,75 m sol ayak 2 NaN 3.5
Irfan Can Kahveci 21 on numara 15-7-1995 22 Başakşehir 1,76 m sol ayak 4 NaN 2.5
Berkay Özcan 27 on numara 15-2-1998 20 Stuttgart 1,80 m sağ ayak 1 NaN 2.5
Kenan Karaman 18 sol kanat 5-3-1994 24 Hannover 1,89 m sağ ayak 3 NaN 1.5
Cengiz Ünder 17 sağ kanat 14-7-1997 20 Roma 1,73 m sol ayak 11 4.0 27
Serdar Gürler 7 sağ kanat 14-9-1991 26 Osmanlı 1,75 m sağ ayak 4 NaN 3.5
Umut Bulut 10 santrafor 15-3-1983 35 Kayseri 1,84 m sağ ayak 39 10.0 0.45
In [77]:
takımlar.reset_index(inplace=True) # indexi default hale getirip az önceki set_index işlemini iptal etmiş olduk. İnplace=True yardımıyla kalıcı hale getirdik
takımlar
Out[77]:
İsim Numara Görev Doğum Tarihi Yaş Takım Boy Ayak Maç Gol Milyon Euro
0 Harun Tekin 1 kaleci 17-6-1989 29 Bursa 1,87 m sağ ayak 2 NaN 2.5
1 Sinan Bolat 23 kaleci 3-9-1988 29 Royal FC 1,88 m sağ ayak 6 NaN 1.2
2 Serkan Kirintili 12 kaleci 15-2-1985 33 Konya 1,86 m sağ ayak 3 NaN 0.8
3 Caglar Söyüncü 4 stoper 23-5-1996 22 Sc Freiburg 1,87 m sağ ayak 16 1.0 18
4 Kaan Ayhan 22 stoper 10-11-1994 23 Düsseldorf 1,85 m sağ ayak 13 NaN 3
5 Ertugrul Ersoy 24 stoper 13-2-1997 21 Bursa 1,87 m sağ ayak 0 NaN 1.75
6 Hasan Ali Kaldirim 3 sol bek 9-12-1989 28 Fenerbahçe 1,83 m sol ayak 25 NaN 3.25
7 Ömer Bayram 6 sol bek 27-7-1991 26 Akhisar 1,75 m sol ayak 2 NaN 2
8 Sener Özbayrakli 2 sağ bek 23-1-1990 28 Fenerbahçe 1,71 m sağ ayak 17 NaN 2
9 Zeki Celik 13 sağ bek 17-2-1997 21 İstanbul 1,80 m sağ ayak 1 NaN 0.8
10 Okay Yokuslu 5 önlibero 9-3-1994 24 Trabzon 1,91 m sağ ayak 14 1.0 7.50
11 Mehmet Topal 15 önlibero 3-3-1986 32 Fenerbahçe 1,87 m cift ayakli 78 2.0 2.5
12 Mahmut Tekdemir 14 önlibero 20-1-1988 30 Başakşehir 1,78 m sağ ayak 5 NaN 2
13 Tarkan Serbest 25 önlibero 19-4-1994 24 Austria Vien 1,84 m sağ ayak 1 NaN 1.5
14 Oguzhan Özyakup 8 orta saha 23-9-1992 25 Beşiktaş 1,80 m sağ ayak 35 1.0 8
15 Yusuf Yazici 11 on numara 29-1-1997 21 Trabzon 1,83 m sol ayak 9 NaN 12
16 Yunus Malli 19 on numara 24-2-1992 26 Wolsburg 1,79 m sağ ayak 18 1.0 9
17 Emre Akbaba 20 on numara 4-10-1992 25 Alanya 1,80 m cift ayakli 5 1.0 5.5
18 Deniz Türüc 16 on numara 29-1-1993 25 Kayseri 1,75 m sol ayak 2 NaN 3.5
19 Irfan Can Kahveci 21 on numara 15-7-1995 22 Başakşehir 1,76 m sol ayak 4 NaN 2.5
20 Berkay Özcan 27 on numara 15-2-1998 20 Stuttgart 1,80 m sağ ayak 1 NaN 2.5
21 Kenan Karaman 18 sol kanat 5-3-1994 24 Hannover 1,89 m sağ ayak 3 NaN 1.5
22 Cengiz Ünder 17 sağ kanat 14-7-1997 20 Roma 1,73 m sol ayak 11 4.0 27
23 Serdar Gürler 7 sağ kanat 14-9-1991 26 Osmanlı 1,75 m sağ ayak 4 NaN 3.5
24 Umut Bulut 10 santrafor 15-3-1983 35 Kayseri 1,84 m sağ ayak 39 10.0 0.45
In [78]:
takımlar=pd.read_csv("millitakim",index_col="Numara") # bu hatanın nedeni dosyamızın uzantısını yazmamış olmamızdır. millitakim.csv yazarsak çözüm bulunmuşş olur.
---------------------------------------------------------------------------
FileNotFoundError                         Traceback (most recent call last)
<ipython-input-78-1b640897c7de> in <module>
----> 1 takımlar=pd.read_csv("millitakim",index_col="Numara")

~\Anaconda3\lib\site-packages\pandas\io\parsers.py in parser_f(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, squeeze, prefix, mangle_dupe_cols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, nrows, na_values, keep_default_na, na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, dayfirst, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, escapechar, comment, encoding, dialect, tupleize_cols, error_bad_lines, warn_bad_lines, skipfooter, doublequote, delim_whitespace, low_memory, memory_map, float_precision)
    676                     skip_blank_lines=skip_blank_lines)
    677 
--> 678         return _read(filepath_or_buffer, kwds)
    679 
    680     parser_f.__name__ = name

~\Anaconda3\lib\site-packages\pandas\io\parsers.py in _read(filepath_or_buffer, kwds)
    438 
    439     # Create the parser.
--> 440     parser = TextFileReader(filepath_or_buffer, **kwds)
    441 
    442     if chunksize or iterator:

~\Anaconda3\lib\site-packages\pandas\io\parsers.py in __init__(self, f, engine, **kwds)
    785             self.options['has_index_names'] = kwds['has_index_names']
    786 
--> 787         self._make_engine(self.engine)
    788 
    789     def close(self):

~\Anaconda3\lib\site-packages\pandas\io\parsers.py in _make_engine(self, engine)
   1012     def _make_engine(self, engine='c'):
   1013         if engine == 'c':
-> 1014             self._engine = CParserWrapper(self.f, **self.options)
   1015         else:
   1016             if engine == 'python':

~\Anaconda3\lib\site-packages\pandas\io\parsers.py in __init__(self, src, **kwds)
   1706         kwds['usecols'] = self.usecols
   1707 
-> 1708         self._reader = parsers.TextReader(src, **kwds)
   1709 
   1710         passed_names = self.names is None

pandas\_libs\parsers.pyx in pandas._libs.parsers.TextReader.__cinit__()

pandas\_libs\parsers.pyx in pandas._libs.parsers.TextReader._setup_parser_source()

FileNotFoundError: File b'millitakim' does not exist
In [80]:
takımlar=pd.read_csv("millitakim.csv",index_col="Numara") # read_csv metodunun index_col parametresi sayesinde istediğimiz sütunu index sütunu haline getirebiliriz
takımlar
Out[80]:
İsim Görev Doğum Tarihi Yaş Takım Boy Ayak Maç Gol Milyon Euro
Numara
1 Harun Tekin kaleci 17-6-1989 29 Bursa 1,87 m sağ ayak 2 NaN 2.5
23 Sinan Bolat kaleci 3-9-1988 29 Royal FC 1,88 m sağ ayak 6 NaN 1.2
12 Serkan Kirintili kaleci 15-2-1985 33 Konya 1,86 m sağ ayak 3 NaN 0.8
4 Caglar Söyüncü stoper 23-5-1996 22 Sc Freiburg 1,87 m sağ ayak 16 1.0 18
22 Kaan Ayhan stoper 10-11-1994 23 Düsseldorf 1,85 m sağ ayak 13 NaN 3
24 Ertugrul Ersoy stoper 13-2-1997 21 Bursa 1,87 m sağ ayak 0 NaN 1.75
3 Hasan Ali Kaldirim sol bek 9-12-1989 28 Fenerbahçe 1,83 m sol ayak 25 NaN 3.25
6 Ömer Bayram sol bek 27-7-1991 26 Akhisar 1,75 m sol ayak 2 NaN 2
2 Sener Özbayrakli sağ bek 23-1-1990 28 Fenerbahçe 1,71 m sağ ayak 17 NaN 2
13 Zeki Celik sağ bek 17-2-1997 21 İstanbul 1,80 m sağ ayak 1 NaN 0.8
5 Okay Yokuslu önlibero 9-3-1994 24 Trabzon 1,91 m sağ ayak 14 1.0 7.50
15 Mehmet Topal önlibero 3-3-1986 32 Fenerbahçe 1,87 m cift ayakli 78 2.0 2.5
14 Mahmut Tekdemir önlibero 20-1-1988 30 Başakşehir 1,78 m sağ ayak 5 NaN 2
25 Tarkan Serbest önlibero 19-4-1994 24 Austria Vien 1,84 m sağ ayak 1 NaN 1.5
8 Oguzhan Özyakup orta saha 23-9-1992 25 Beşiktaş 1,80 m sağ ayak 35 1.0 8
11 Yusuf Yazici on numara 29-1-1997 21 Trabzon 1,83 m sol ayak 9 NaN 12
19 Yunus Malli on numara 24-2-1992 26 Wolsburg 1,79 m sağ ayak 18 1.0 9
20 Emre Akbaba on numara 4-10-1992 25 Alanya 1,80 m cift ayakli 5 1.0 5.5
16 Deniz Türüc on numara 29-1-1993 25 Kayseri 1,75 m sol ayak 2 NaN 3.5
21 Irfan Can Kahveci on numara 15-7-1995 22 Başakşehir 1,76 m sol ayak 4 NaN 2.5
27 Berkay Özcan on numara 15-2-1998 20 Stuttgart 1,80 m sağ ayak 1 NaN 2.5
18 Kenan Karaman sol kanat 5-3-1994 24 Hannover 1,89 m sağ ayak 3 NaN 1.5
17 Cengiz Ünder sağ kanat 14-7-1997 20 Roma 1,73 m sol ayak 11 4.0 27
7 Serdar Gürler sağ kanat 14-9-1991 26 Osmanlı 1,75 m sağ ayak 4 NaN 3.5
10 Umut Bulut santrafor 15-3-1983 35 Kayseri 1,84 m sağ ayak 39 10.0 0.45
In [81]:
takımlar.loc[4] # bu metod sayesinde istediğimiz index numarası ile o satırın tüm özelliklerini getirebiliyoruz.
Out[81]:
İsim            Caglar Söyüncü
Görev                   stoper
Doğum Tarihi         23-5-1996
Yaş                         22
Takım              Sc Freiburg
Boy                     1,87 m
Ayak                  sağ ayak
Maç                         16
Gol                          1
Milyon Euro                 18
Name: 4, dtype: object
In [82]:
takımlar.loc[4,"Görev"] # bu şekilde istediğimiz satırın istediğimiz özelliğini tek başına da çekebiliyoruz.
Out[82]:
'stoper'
In [83]:
takımlar.set_index("İsim",inplace=True) # isim sütununu index sütunu yaptık.
takımlar
Out[83]:
Görev Doğum Tarihi Yaş Takım Boy Ayak Maç Gol Milyon Euro
İsim
Harun Tekin kaleci 17-6-1989 29 Bursa 1,87 m sağ ayak 2 NaN 2.5
Sinan Bolat kaleci 3-9-1988 29 Royal FC 1,88 m sağ ayak 6 NaN 1.2
Serkan Kirintili kaleci 15-2-1985 33 Konya 1,86 m sağ ayak 3 NaN 0.8
Caglar Söyüncü stoper 23-5-1996 22 Sc Freiburg 1,87 m sağ ayak 16 1.0 18
Kaan Ayhan stoper 10-11-1994 23 Düsseldorf 1,85 m sağ ayak 13 NaN 3
Ertugrul Ersoy stoper 13-2-1997 21 Bursa 1,87 m sağ ayak 0 NaN 1.75
Hasan Ali Kaldirim sol bek 9-12-1989 28 Fenerbahçe 1,83 m sol ayak 25 NaN 3.25
Ömer Bayram sol bek 27-7-1991 26 Akhisar 1,75 m sol ayak 2 NaN 2
Sener Özbayrakli sağ bek 23-1-1990 28 Fenerbahçe 1,71 m sağ ayak 17 NaN 2
Zeki Celik sağ bek 17-2-1997 21 İstanbul 1,80 m sağ ayak 1 NaN 0.8
Okay Yokuslu önlibero 9-3-1994 24 Trabzon 1,91 m sağ ayak 14 1.0 7.50
Mehmet Topal önlibero 3-3-1986 32 Fenerbahçe 1,87 m cift ayakli 78 2.0 2.5
Mahmut Tekdemir önlibero 20-1-1988 30 Başakşehir 1,78 m sağ ayak 5 NaN 2
Tarkan Serbest önlibero 19-4-1994 24 Austria Vien 1,84 m sağ ayak 1 NaN 1.5
Oguzhan Özyakup orta saha 23-9-1992 25 Beşiktaş 1,80 m sağ ayak 35 1.0 8
Yusuf Yazici on numara 29-1-1997 21 Trabzon 1,83 m sol ayak 9 NaN 12
Yunus Malli on numara 24-2-1992 26 Wolsburg 1,79 m sağ ayak 18 1.0 9
Emre Akbaba on numara 4-10-1992 25 Alanya 1,80 m cift ayakli 5 1.0 5.5
Deniz Türüc on numara 29-1-1993 25 Kayseri 1,75 m sol ayak 2 NaN 3.5
Irfan Can Kahveci on numara 15-7-1995 22 Başakşehir 1,76 m sol ayak 4 NaN 2.5
Berkay Özcan on numara 15-2-1998 20 Stuttgart 1,80 m sağ ayak 1 NaN 2.5
Kenan Karaman sol kanat 5-3-1994 24 Hannover 1,89 m sağ ayak 3 NaN 1.5
Cengiz Ünder sağ kanat 14-7-1997 20 Roma 1,73 m sol ayak 11 4.0 27
Serdar Gürler sağ kanat 14-9-1991 26 Osmanlı 1,75 m sağ ayak 4 NaN 3.5
Umut Bulut santrafor 15-3-1983 35 Kayseri 1,84 m sağ ayak 39 10.0 0.45
In [86]:
takımlar.loc["Zeki Celik":"Mehmet Topal"] # iki index aralığını getirmiş olduk
Out[86]:
Görev Doğum Tarihi Yaş Takım Boy Ayak Maç Gol Milyon Euro
İsim
Zeki Celik sağ bek 17-2-1997 21 İstanbul 1,80 m sağ ayak 1 NaN 0.8
Okay Yokuslu önlibero 9-3-1994 24 Trabzon 1,91 m sağ ayak 14 1.0 7.50
Mehmet Topal önlibero 3-3-1986 32 Fenerbahçe 1,87 m cift ayakli 78 2.0 2.5
In [88]:
takımlar.iloc[3] # bu metod loctan farklı olarak hangi sütun index olursa olsun sıralamaya göre index alır.
Out[88]:
Görev                stoper
Doğum Tarihi      23-5-1996
Yaş                      22
Takım           Sc Freiburg
Boy                  1,87 m
Ayak               sağ ayak
Maç                      16
Gol                       1
Milyon Euro              18
Name: Caglar Söyüncü, dtype: object
In [92]:
takımlar.iloc[3,5] # istediğimiz satırın istediğimiz sütundaki değerini numerik olarak belirleyip alabiliyoruz. 
# 3. satır 5. sütun verilerini gösteriyoruz burada. Bir üstteki kod bloğunda bu değer görülmektedir.
Out[92]:
'sağ ayak'
In [ ]:
 

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir