Библиотека Pandas

Data Frame

import pandas as pd
#создание DataFrame с помощью чтения данных из файла
frame = pd.read_csv('data_sample_example.tsv', header=0, sep='\t')
frame
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 Москва стажер
frame.dtypes
Name        object
Birth       object
City        object
Position    object
dtype: object
#изменение типа столбца с помощью функции apply
frame.Birth = frame.Birth.apply(pd.to_datetime)
frame
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 Москва стажер
frame.dtypes
Name                object
Birth       datetime64[ns]
City                object
Position            object
dtype: object
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: 272.0+ bytes
#заполнение пропущенных значений с помощью метода fillna
frame.Position.fillna('разнорабочий')
0    разнорабочий
1         инженер
2        менеджер
3    разнорабочий
4         инженер
5          стажер
Name: Position, dtype: object
#заполнение пропущенных значений с помощью метода fillna (inplace)
frame.Position.fillna('разнорабочий', inplace=True)
frame.tail(3)
Name Birth City Position
3 Мельникова Д.С. 1985-04-15 Ростов разнорабочий
4 Рыбина Е.П. 1985-11-19 Москва инженер
5 Костров С.О. 1985-05-31 Москва стажер
frame['Position']
0    разнорабочий
1         инженер
2        менеджер
3    разнорабочий
4         инженер
5          стажер
Name: Position, dtype: object
frame[['Position']]
Position
0 разнорабочий
1 инженер
2 менеджер
3 разнорабочий
4 инженер
5 стажер
frame[['Name', 'Position']]
Name Position
0 Иванов А.А. разнорабочий
1 Сорокин И.В. инженер
2 Белов М.М. менеджер
3 Мельникова Д.С. разнорабочий
4 Рыбина Е.П. инженер
5 Костров С.О. стажер
frame[:] #выбираем первые три записи
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 Москва стажер
frame[0:-1] #выбираем три послдение записи
Name Birth City Position
0 Иванов А.А. 1980-03-22 Москва разнорабочий
1 Сорокин И.В. 1965-07-08 Волгоград инженер
2 Белов М.М. 1980-02-13 Ростов менеджер
3 Мельникова Д.С. 1985-04-15 Ростов разнорабочий
4 Рыбина Е.П. 1985-11-19 Москва инженер
frame.loc[[0,1,2], ["Name", "City"]] #работает на основе имен
Name City
0 Иванов А.А. Москва
1 Сорокин И.В. Волгоград
2 Белов М.М. Ростов
frame.iloc[[1,3,5], [0,1]] #работает на основе позиций
Name Birth
1 Сорокин И.В. 1965-07-08
3 Мельникова Д.С. 1985-04-15
5 Костров С.О. 1985-05-31
frame.ix[[0,1,2], ["Name", "City"]]  #поддерживает и имена и позиции (пример с именами)
/srv/paws/lib/python3.6/site-packages/ipykernel_launcher.py:1: DeprecationWarning: 
.ix is deprecated. Please use
.loc for label based indexing or
.iloc for positional indexing

See the documentation here:
http://pandas.pydata.org/pandas-docs/stable/indexing.html#ix-indexer-is-deprecated
  """Entry point for launching an IPython kernel.
Name City
0 Иванов А.А. Москва
1 Сорокин И.В. Волгоград
2 Белов М.М. Ростов
frame.ix[[0,1,2], [0,1]] #поддерживает и имена и позиции (пример с позициями)
Name Birth
0 Иванов А.А. 1980-03-22
1 Сорокин И.В. 1965-07-08
2 Белов М.М. 1980-02-13
#выбираем строки, которые удовлетворяют условию frame.Birth >= pd.datetime(1985,1,1)
frame[frame.Birth >= pd.datetime(1985,1,1)]
Name Birth City Position
3 Мельникова Д.С. 1985-04-15 Ростов разнорабочий
4 Рыбина Е.П. 1985-11-19 Москва инженер
5 Костров С.О. 1985-05-31 Москва стажер
frame.size
24
#выбираем строки, удовлетворяющие объединению условий
frame[(frame.Birth >= pd.datetime(1985,1,1)) |
      (frame.City == 'Волгоград')]
Name Birth City Position
1 Сорокин И.В. 1965-07-08 Волгоград инженер
3 Мельникова Д.С. 1985-04-15 Ростов разнорабочий
4 Рыбина Е.П. 1985-11-19 Москва инженер
5 Костров С.О. 1985-05-31 Москва стажер