donderdag 8 oktober 2015

Pandas

Via een uitstekende Kaggle introductie tutorial op dataquest kom ik opnieuw Pandas tegen. (Voor de zomer ook al even naar gekeken) Een Python library waarmee eenvoudiger data-structurering en -analyses gemaakt kunnen worden. Hoewel mijn beperkte Python en Numpy ervaring wellicht ook tegenwerkt is het een verademing om met Pandas bijvoorbeeld een csv bestand te analyseren.
Met wat eenvoudige code kan bijvoorbeeld de volgende informatie over de titanic dataset uit Kaggle worden getoverd.

import pandas

# File inlezen
file = '/Users/DWW/Downloads/train.csv'
titanic = pandas.read_csv(file)
print(titanic.describe())
print(titanic.head(5)) # Eerste 5 records


       PassengerId    Survived      Pclass         Age       SibSp  \
count   891.000000  891.000000  891.000000  714.000000  891.000000   
mean    446.000000    0.383838    2.308642   29.699118    0.523008   
std     257.353842    0.486592    0.836071   14.526497    1.102743   
min       1.000000    0.000000    1.000000    0.420000    0.000000   
25%     223.500000    0.000000    2.000000   20.125000    0.000000   
50%     446.000000    0.000000    3.000000   28.000000    0.000000   
75%     668.500000    1.000000    3.000000   38.000000    1.000000   
max     891.000000    1.000000    3.000000   80.000000    8.000000   

            Parch        Fare  
count  891.000000  891.000000  
mean     0.381594   32.204208  
std      0.806057   49.693429  
min      0.000000    0.000000  
25%      0.000000    7.910400  
50%      0.000000   14.454200  
75%      0.000000   31.000000  
max      6.000000  512.329200  

   PassengerId  Survived  Pclass  \
0            1         0       3   
1            2         1       1   
2            3         1       3   
3            4         1       1   
4            5         0       3   

                                                Name     Sex  Age  SibSp  \
0                            Braund, Mr. Owen Harris    male   22      1   
1  Cumings, Mrs. John Bradley (Florence Briggs Th...  female   38      1   
2                             Heikkinen, Miss. Laina  female   26      0   
3       Futrelle, Mrs. Jacques Heath (Lily May Peel)  female   35      1   
4                           Allen, Mr. William Henry    male   35      0   

   Parch            Ticket     Fare Cabin Embarked  
0      0         A/5 21171   7.2500   NaN        S  
1      0          PC 17599  71.2833   C85        C  
2      0  STON/O2. 3101282   7.9250   NaN        S  
3      0            113803  53.1000  C123        S  

4      0            373450   8.0500   NaN        S  

Dit geeft toch behoorlijk snel inzicht in de onderhanden data. Er kan dan ook naar kolommen verwezen worden met behulp van de kolomnamen. Zo geeft de volgende code alle variaties in de kolom "Embarked" en kunnen de lege waarden van "Age" bijvoorbeeld met een mediaan worden gevuld:

In:
print(titanic["Embarked"].unique())
titanic["Age"] = titanic["Age"].fillna(titanic["Age"].median())

Out:
['S' 'C' 'Q' nan]

Bij het werken met nieuwe datasets lijkt mij dat een enorme verrijking. Eens kijken wat het allemaal nog meer te bieden heeft.





Geen opmerkingen:

Een reactie posten