In [1]:
import pandas as pd

In [2]:
%matplotlib inline

In [3]:
df = pd.read_csv("07-hw-animals.csv", encoding='UTF8')

In [4]:
df


Out[4]:
animal name length
0 cat Anne 35
1 cat Bob 45
2 dog Egglesburg 65
3 dog Devon 50
4 cat Charlie 32
5 dog Fontaine 35

In [5]:
df.columns


Out[5]:
Index(['animal', 'name', 'length'], dtype='object')

In [6]:
df.head(3)


Out[6]:
animal name length
0 cat Anne 35
1 cat Bob 45
2 dog Egglesburg 65

In [9]:
df.sort_values(by='length',ascending=False).head(3)


Out[9]:
animal name length
2 dog Egglesburg 65
3 dog Devon 50
1 cat Bob 45

In [10]:
df['animal'].value_counts()


Out[10]:
dog    3
cat    3
Name: animal, dtype: int64

In [12]:
df[df['animal']=='dog']


Out[12]:
animal name length
2 dog Egglesburg 65
3 dog Devon 50
5 dog Fontaine 35

In [18]:
df[df['length']>40]


Out[18]:
animal name length lengthincm lengthininches
1 cat Bob 45 17.716545 17.716545
2 dog Egglesburg 65 25.590565 25.590565
3 dog Devon 50 19.685050 19.685050

In [22]:
df['lengthininches']=df['length']*0.393701

In [23]:
df.head()


Out[23]:
animal name length lengthininches
0 cat Anne 35 13.779535
1 cat Bob 45 17.716545
2 dog Egglesburg 65 25.590565
3 dog Devon 50 19.685050
4 cat Charlie 32 12.598432

In [24]:
cats=df[df['animal']=='cat']

In [25]:
dogs=df[df['animal']=='dog']

In [26]:
cats


Out[26]:
animal name length lengthininches
0 cat Anne 35 13.779535
1 cat Bob 45 17.716545
4 cat Charlie 32 12.598432

In [27]:
dogs


Out[27]:
animal name length lengthininches
2 dog Egglesburg 65 25.590565
3 dog Devon 50 19.685050
5 dog Fontaine 35 13.779535

In [31]:
cats[cats['lengthininches']>12]


Out[31]:
animal name length lengthininches
0 cat Anne 35 13.779535
1 cat Bob 45 17.716545
4 cat Charlie 32 12.598432

In [64]:
df[(df['animal']=='cat') & (df['lengthininches']>12)]


Out[64]:
animal name length lengthininches
0 cat Anne 35 13.779535
1 cat Bob 45 17.716545
4 cat Charlie 32 12.598432

In [46]:
cats.describe()


Out[46]:
length lengthininches
count 3.000000 3.000000
mean 37.333333 14.698171
std 6.806859 2.679867
min 32.000000 12.598432
25% 33.500000 13.188984
50% 35.000000 13.779535
75% 40.000000 15.748040
max 45.000000 17.716545

In [47]:
dogs.describe()


Out[47]:
length lengthininches
count 3.0 3.000000
mean 50.0 19.685050
std 15.0 5.905515
min 35.0 13.779535
25% 42.5 16.732292
50% 50.0 19.685050
75% 57.5 22.637808
max 65.0 25.590565

In [49]:
df.groupby(cats,dogs).describe()


---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-49-87c7a5d03851> in <module>()
----> 1 df.groupby(cats,dogs).describe()

c:\users\harsha devulapalli\appdata\local\programs\python\python35\lib\site-packages\pandas\core\generic.py in groupby(self, by, axis, level, as_index, sort, group_keys, squeeze, **kwargs)
   3773         if level is None and by is None:
   3774             raise TypeError("You have to supply one of 'by' and 'level'")
-> 3775         axis = self._get_axis_number(axis)
   3776         return groupby(self, by=by, axis=axis, level=level, as_index=as_index,
   3777                        sort=sort, group_keys=group_keys, squeeze=squeeze,

c:\users\harsha devulapalli\appdata\local\programs\python\python35\lib\site-packages\pandas\core\generic.py in _get_axis_number(self, axis)
    306 
    307     def _get_axis_number(self, axis):
--> 308         axis = self._AXIS_ALIASES.get(axis, axis)
    309         if com.is_integer(axis):
    310             if axis in self._AXIS_NAMES:

c:\users\harsha devulapalli\appdata\local\programs\python\python35\lib\site-packages\pandas\core\generic.py in __hash__(self)
    804     def __hash__(self):
    805         raise TypeError('{0!r} objects are mutable, thus they cannot be'
--> 806                         ' hashed'.format(self.__class__.__name__))
    807 
    808     def __iter__(self):

TypeError: 'DataFrame' objects are mutable, thus they cannot be hashed

In [50]:
dogs


Out[50]:
animal name length lengthininches
2 dog Egglesburg 65 25.590565
3 dog Devon 50 19.685050
5 dog Fontaine 35 13.779535

In [51]:
dogs['lengthininches'].hist()


Out[51]:
<matplotlib.axes._subplots.AxesSubplot at 0x1a5fd9b2ef0>

In [53]:
import matplotlib.pyplot as plt

In [54]:
plt.style.available


Out[54]:
['seaborn-talk',
 'seaborn-notebook',
 'seaborn-muted',
 'bmh',
 'seaborn-poster',
 'grayscale',
 'seaborn-ticks',
 'seaborn-white',
 'seaborn-pastel',
 'ggplot',
 'seaborn-dark-palette',
 'seaborn-deep',
 'classic',
 'seaborn-bright',
 'fivethirtyeight',
 'dark_background',
 'seaborn-whitegrid',
 'seaborn-colorblind',
 'seaborn-dark',
 'seaborn-paper',
 'seaborn-darkgrid']

In [55]:
plt.style.use('fivethirtyeight')

In [69]:
dogs.plot(kind='barh',x='name',y='length')


Out[69]:
<matplotlib.axes._subplots.AxesSubplot at 0x1a5ff362eb8>

In [79]:
catssorted=cats.sort_values(by='lengthininches')

In [80]:
catssorted.plot(kind='barh',x='name',y='length')


Out[80]:
<matplotlib.axes._subplots.AxesSubplot at 0x1a5ff62b668>

In [ ]: