Библиотека Pandas

Data Frame


In [2]:
import pandas as pd

In [3]:
#создание DataFrame с помощью чтения данных из файла
frame = pd.read_csv('data_sample_example.tsv', header=0, sep='\t')

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 [8]:
frame.dtypes


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

In [6]:
#изменение типа столбца с помощью функции apply
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 [ ]:
frame.dtypes

In [10]:
frame.info()


<class 'pandas.core.frame.DataFrame'>
Int64Index: 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: 240.0+ bytes

In [11]:
#заполнение пропущенных значений с помощью метода fillna
frame.fillna('разнорабочий')


Out[11]:
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 [12]:
#заполнение пропущенных значений с помощью метода fillna (inplace)
frame.fillna('разнорабочий', inplace=True)

In [ ]:
frame

In [ ]:
frame.Position

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

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

In [ ]:
frame[:3] #выбираем первые три записи

In [ ]:
frame[-3:] #выбираем три послдение записи

In [ ]:
frame.loc[[0,1,2], ["Name", "City"]] #работает на основе имен

In [ ]:
frame.iloc[[1,3,5], [0,1]] #работает на основе позиций

In [ ]:
frame.ix[[0,1,2], ["Name", "City"]]  #поддерживает и имена и позиции (пример с именами)

In [ ]:
frame.ix[[0,1,2], [0,1]] #поддерживает и имена и позиции (пример с позициями)

In [ ]:
#выбираем строки, которые удовлетворяют условию frame.Birth >= pd.datetime(1985,1,1)
frame[frame.Birth >= pd.datetime(1985,1,1)]

In [ ]:
#выбираем строки, удовлетворяющие пересечению условий
frame[(frame.Birth >= pd.datetime(1985,1,1)) &
      (frame.City != 'Москва')]

In [ ]:
#выбираем строки, удовлетворяющие объединению условий
frame[(frame.Birth >= pd.datetime(1985,1,1)) |
      (frame.City == 'Волгоград')]