четверг, 5 мая 2016 г.

Pandas Dataframe

In [24]:
from pandas import Series, DataFrame
import pandas as pd
import numpy as np
 
In [4]:
data = {u'Фамилия': [u'Иванов', u'Петров', u'Сидоров', u'Орлов', u'Пастухов', u'Николаев'],
        u'Математика': [76, 38, 40, 67, 38, 23],
        u'Физика': [54, 74, 43, 67, 95, 37]}
 
In [5]:
data
 
Out[5]:
{'Математика': [76, 38, 40, 67, 38, 23],
 'Фамилия': ['Иванов', 'Петров', 'Сидоров', 'Орлов', 'Пастухов', 'Николаев'],
 'Физика': [54, 74, 43, 67, 95, 37]}
 
In [6]:
frame = DataFrame(data)
 
In [7]:
frame
 
Out[7]:

Математика Фамилия Физика
0 76 Иванов 54
1 38 Петров 74
2 40 Сидоров 43
3 67 Орлов 67
4 38 Пастухов 95
5 23 Николаев 37

In [8]:
frame1 = DataFrame(data, columns = [u'Фамилия', u'Физика', u'Математика'])
 
In [9]:
frame1
 
Out[9]:

Фамилия Физика Математика
0 Иванов 54 76
1 Петров 74 38
2 Сидоров 43 40
3 Орлов 67 67
4 Пастухов 95 38
5 Николаев 37 23

In [10]:
frame2 = DataFrame(data, columns = [u'Фамилия', u'Физика', u'Математика'], 
                         index = ['i01', 'i02','i03', 'i04', 'i05', 'i06'])
 
In [11]:
frame2
 
Out[11]:

Фамилия Физика Математика
i01 Иванов 54 76
i02 Петров 74 38
i03 Сидоров 43 40
i04 Орлов 67 67
i05 Пастухов 95 38
i06 Николаев 37 23

In [12]:
frame2.columns
 
Out[12]:
Index(['Фамилия', 'Физика', 'Математика'], dtype='object')
 
In [13]:
frame2.index
 
Out[13]:
Index(['i01', 'i02', 'i03', 'i04', 'i05', 'i06'], dtype='object')
 
In [14]:
frame2.values
 
Out[14]:
array([['Иванов', 54, 76],
       ['Петров', 74, 38],
       ['Сидоров', 43, 40],
       ['Орлов', 67, 67],
       ['Пастухов', 95, 38],
       ['Николаев', 37, 23]], dtype=object)
 
In [15]:
frame2[u'Фамилия']
 
Out[15]:
i01      Иванов
i02      Петров
i03     Сидоров
i04       Орлов
i05    Пастухов
i06    Николаев
Name: Фамилия, dtype: object
 
In [16]:
frame2.u'Фамилия'
  File "<ipython-input-16-7f0e417189df>", line 1
    frame2.u'Фамилия'
                    ^
SyntaxError: invalid syntax
 
In [17]:
frame2.ix['i04']
 
Out[17]:
Фамилия       Орлов
Физика           67
Математика       67
Name: i04, dtype: object
 
In [18]:
frame3 = DataFrame(data, columns = [u'Фамилия', u'Физика', u'Математика', 'status'], 
                         index = ['i01', 'i02','i03', 'i04', 'i05', 'i06'])
 
In [19]:
frame3
 
Out[19]:

Фамилия Физика Математика status
i01 Иванов 54 76 NaN
i02 Петров 74 38 NaN
i03 Сидоров 43 40 NaN
i04 Орлов 67 67 NaN
i05 Пастухов 95 38 NaN
i06 Николаев 37 23 NaN

In [20]:
frame3['status']
 
Out[20]:
i01    NaN
i02    NaN
i03    NaN
i04    NaN
i05    NaN
i06    NaN
Name: status, dtype: object
 
In [21]:
frame3.status
 
Out[21]:
i01    NaN
i02    NaN
i03    NaN
i04    NaN
i05    NaN
i06    NaN
Name: status, dtype: object
 
In [22]:
frame3['status'] = 16.5
 
In [23]:
frame3
 
Out[23]:

Фамилия Физика Математика status
i01 Иванов 54 76 16.5
i02 Петров 74 38 16.5
i03 Сидоров 43 40 16.5
i04 Орлов 67 67 16.5
i05 Пастухов 95 38 16.5
i06 Николаев 37 23 16.5

In [25]:
frame3['status'] = np.arange(6.)
 
In [26]:
frame3
 
Out[26]:

Фамилия Физика Математика status
i01 Иванов 54 76 0
i02 Петров 74 38 1
i03 Сидоров 43 40 2
i04 Орлов 67 67 3
i05 Пастухов 95 38 4
i06 Николаев 37 23 5

In [27]:
val = Series([777, 888, 999], index = ['i02', 'i04', 'i06'])
 
In [28]:
frame3['status'] = val
 
In [29]:
frame3
 
Out[29]:

Фамилия Физика Математика status
i01 Иванов 54 76 NaN
i02 Петров 74 38 777
i03 Сидоров 43 40 NaN
i04 Орлов 67 67 888
i05 Пастухов 95 38 NaN
i06 Николаев 37 23 999

In [30]:
frame3['status'] = frame3[u'Математика'] == 38
 
In [31]:
frame3
 
Out[31]:

Фамилия Физика Математика status
i01 Иванов 54 76 False
i02 Петров 74 38 True
i03 Сидоров 43 40 False
i04 Орлов 67 67 False
i05 Пастухов 95 38 True
i06 Николаев 37 23 False

In [32]:
frame3.columns
 
Out[32]:
Index(['Фамилия', 'Физика', 'Математика', 'status'], dtype='object')
 
In [33]:
del frame3['status']
 
In [34]:
frame3.columns
 
Out[34]:
Index(['Фамилия', 'Физика', 'Математика'], dtype='object')
 
In [35]:
frame3
 
Out[35]:

Фамилия Физика Математика
i01 Иванов 54 76
i02 Петров 74 38
i03 Сидоров 43 40
i04 Орлов 67 67
i05 Пастухов 95 38
i06 Николаев 37 23

In [36]:
frame3.T
 
Out[36]:

i01 i02 i03 i04 i05 i06
Фамилия Иванов Петров Сидоров Орлов Пастухов Николаев
Физика 54 74 43 67 95 37
Математика 76 38 40 67 38 23
In [ ]: