In [1]:
import pandas as pd
from numpy import random as rnd
import matplotlib.pyplot as plt
from IPython.display import display

In [2]:
# Имена и количество рожденных
names = ['Bob','Jessica','Mary','John','Mel']
births = [968, 155, 77, 578, 973]

In [3]:
# Упаковка
BabyDataSet = list(zip(names,births))
BabyDataSet[:10]


Out[3]:
[('Bob', 968), ('Jessica', 155), ('Mary', 77), ('John', 578), ('Mel', 973)]

In [4]:
# Датафрейм
df = pd.DataFrame(data = BabyDataSet, columns=['Names', 'Births'])
df


Out[4]:
Names Births
0 Bob 968
1 Jessica 155
2 Mary 77
3 John 578
4 Mel 973

In [5]:
# Проверка данных в колонках
df.dtypes


Out[5]:
Names     object
Births     int64
dtype: object

In [6]:
# Проверка данныхконкретной колонки
df.Births.dtype


Out[6]:
dtype('int64')

In [7]:
# Сортировка
Sorted = df.sort_values(['Births'], ascending=False)
display(Sorted)
Sorted.head(1)


Names Births
4 Mel 973
0 Bob 968
3 John 578
1 Jessica 155
2 Mary 77
Out[7]:
Names Births
4 Mel 973

In [8]:
# нахождение только максимального значения
df['Births'].max()


Out[8]:
973

In [9]:
# нахождение только максимального значения со строкой
df[df['Births']==df['Births'].max()]


Out[9]:
Names Births
4 Mel 973

In [10]:
# нахождение только имени максимального значения
df[df['Births']==df['Births'].max()]['Names'].values


Out[10]:
array(['Mel'], dtype=object)

In [11]:
# 
df['Births'].plot()

# 
MaxValue = df['Births'].max()

# 
MaxName = df['Names'][df['Births'] == df['Births'].max()].values

# 
Text = str(MaxValue) + " - " + MaxName

# 
plt.annotate(Text, 
             xy=(1, MaxValue), 
             xytext=(8, 0),
             xycoords=('axes fraction', 'data'), 
             textcoords='offset points')

plt.show()

print("Самое популярное имя")
display(df[df['Births'] == df['Births'].max()])


Самое популярное имя
Names Births
4 Mel 973