Библиотека Pandas

Data Frame


In [2]:
import pandas as pd

In [3]:
frame = pd.read_csv('data_sample_example.tsv', sep='\t', header=0)

In [4]:
frame


Out[4]:
Name Birth City Position
0 Иванов А.А. 22.03.1980 Москва NaN
1 Сорокин И.В. 07.08.1965 Волгоград инженер
2 Белов М.М. 13.02.1980 Ростов менеджер
3 Мельникова Д.С. 15.04.1985 Ростов NaN
4 Рыбина Е.П. 19.11.1985 Москва инженер
5 Костров С.О. 31.05.1985 Москва стажер

In [5]:
frame.dtypes


Out[5]:
Name        object
Birth       object
City        object
Position    object
dtype: object

In [6]:
frame.Birth = frame.Birth.apply(pd.to_datetime)

In [7]:
frame


Out[7]:
Name Birth City Position
0 Иванов А.А. 1980-03-22 Москва NaN
1 Сорокин И.В. 1965-07-08 Волгоград инженер
2 Белов М.М. 1980-02-13 Ростов менеджер
3 Мельникова Д.С. 1985-04-15 Ростов NaN
4 Рыбина Е.П. 1985-11-19 Москва инженер
5 Костров С.О. 1985-05-31 Москва стажер

In [8]:
frame.dtypes


Out[8]:
Name                object
Birth       datetime64[ns]
City                object
Position            object
dtype: object

In [9]:
frame.info()


<class 'pandas.core.frame.DataFrame'>
RangeIndex: 6 entries, 0 to 5
Data columns (total 4 columns):
Name        6 non-null object
Birth       6 non-null datetime64[ns]
City        6 non-null object
Position    4 non-null object
dtypes: datetime64[ns](1), object(3)
memory usage: 264.0+ bytes

In [13]:
frame.fillna('разнорабочий', inplace=True)

In [14]:
frame


Out[14]:
Name Birth City Position
0 Иванов А.А. 1980-03-22 Москва Разнорабочий
1 Сорокин И.В. 1965-07-08 Волгоград инженер
2 Белов М.М. 1980-02-13 Ростов менеджер
3 Мельникова Д.С. 1985-04-15 Ростов Разнорабочий
4 Рыбина Е.П. 1985-11-19 Москва инженер
5 Костров С.О. 1985-05-31 Москва стажер

In [15]:
frame.Position


Out[15]:
0    Разнорабочий
1         инженер
2        менеджер
3    Разнорабочий
4         инженер
5          стажер
Name: Position, dtype: object

In [19]:
frame[['Position']]


Out[19]:
Position
0 Разнорабочий
1 инженер
2 менеджер
3 Разнорабочий
4 инженер
5 стажер

In [20]:
frame[['Name', 'Position']]


Out[20]:
Name Position
0 Иванов А.А. Разнорабочий
1 Сорокин И.В. инженер
2 Белов М.М. менеджер
3 Мельникова Д.С. Разнорабочий
4 Рыбина Е.П. инженер
5 Костров С.О. стажер

In [21]:
frame.head(3)


Out[21]:
Name Birth City Position
0 Иванов А.А. 1980-03-22 Москва Разнорабочий
1 Сорокин И.В. 1965-07-08 Волгоград инженер
2 Белов М.М. 1980-02-13 Ростов менеджер

In [22]:
frame[:3]


Out[22]:
Name Birth City Position
0 Иванов А.А. 1980-03-22 Москва Разнорабочий
1 Сорокин И.В. 1965-07-08 Волгоград инженер
2 Белов М.М. 1980-02-13 Ростов менеджер

In [25]:
frame[-3:]


Out[25]:
Name Birth City Position
3 Мельникова Д.С. 1985-04-15 Ростов Разнорабочий
4 Рыбина Е.П. 1985-11-19 Москва инженер
5 Костров С.О. 1985-05-31 Москва стажер

In [26]:
frame.loc[[1, 3, 5], ['Name', 'City']]


Out[26]:
Name City
1 Сорокин И.В. Волгоград
3 Мельникова Д.С. Ростов
5 Костров С.О. Москва

In [27]:
frame.iloc[[1, 3, 5], [0, 2]]


Out[27]:
Name City
1 Сорокин И.В. Волгоград
3 Мельникова Д.С. Ростов
5 Костров С.О. Москва

In [28]:
frame.ix[[1, 3, 5], ['Name', 'City']]


Out[28]:
Name City
1 Сорокин И.В. Волгоград
3 Мельникова Д.С. Ростов
5 Костров С.О. Москва

In [29]:
frame.ix[[1, 3, 5], [0, 2]]


Out[29]:
Name City
1 Сорокин И.В. Волгоград
3 Мельникова Д.С. Ростов
5 Костров С.О. Москва

In [30]:
frame[frame.Birth >= pd.datetime(1985, 1, 1)]


Out[30]:
Name Birth City Position
3 Мельникова Д.С. 1985-04-15 Ростов Разнорабочий
4 Рыбина Е.П. 1985-11-19 Москва инженер
5 Костров С.О. 1985-05-31 Москва стажер

In [33]:
frame[(frame.Birth >= pd.datetime(1985, 1, 1)) & (frame.City != 'Москва')]


Out[33]:
Name Birth City Position
3 Мельникова Д.С. 1985-04-15 Ростов Разнорабочий

In [36]:
frame[(frame.Birth >= pd.datetime(1985, 1, 1)) | (frame.City == 'Волгоград')]


Out[36]:
Name Birth City Position
1 Сорокин И.В. 1965-07-08 Волгоград инженер
3 Мельникова Д.С. 1985-04-15 Ростов Разнорабочий
4 Рыбина Е.П. 1985-11-19 Москва инженер
5 Костров С.О. 1985-05-31 Москва стажер