Я изучаю видео пакет, который я купил у PACKT, чтобы выучить панд.Автор использовал стиль jijna2 (), чтобы выделить максимальное значение в каждом столбце.Я быстро обнаружил, что не могу использовать эту технику в PyCharm.Поэтому я решил извлечь значения.
То, что я пытаюсь сделать, - это создать три столбца данных, извлекая индекс строки, имя столбца и максимальное значение столбца из кадра данных с N столбцами, а затем создайте новыйdataframe.Новый информационный кадр будет показывать каждую строку (если есть связи, отображать все соответствующие строки), столбец и максимальное значение в этом столбце.
Я создал игрушечный информационный кадр только для проработки кода.
Мой код ниже, вместе с выводом и в самом низу, это то, что я действительно хочу, чтобы новый фрейм данных выглядел.
Я знаю, что использую заявление для печати.Этот код - единственная вещь, которую я использовал до сих пор, которая правильно выбирает несколько строк, если у меня есть связь.
Я беру всю строку, которая мне не нужна.Я также не уверен, как построить предложенный новый фрейм данных из извлеченных данных.
import pandas as pd
raw_data = {
'dogs': [42, 39, 86, 15, 23, 57, 68, 81, 86],
'cats': [52, 41, 79, 80, 34, 47, 19, 22, 59],
'sheep': [62, 37, 84, 51, 67, 32, 23, 89, 73],
'lizards': [72, 43, 36, 26, 53, 88, 88, 34, 69],
'birds': [82, 35, 77, 63, 18, 12, 45, 56, 58],
}
df = pd.DataFrame(raw_data,
index=pd.Index(['row_1', 'row_2', 'row_3', 'row_4', 'row_5', 'row_6', 'row_7', 'row_8', 'row_9'], name='Rows'),
columns=pd.Index(['dogs', 'cats', 'sheep', 'lizards', 'birds'], name='animals'))
print(df)
print()
# Get a list of all columns names
cols = df.columns
print(cols)
print('*****')
for col in cols:
print((df[df[col] == df[col].max()]))
'''
animals dogs cats sheep lizards birds
Rows
row_3 86 79 84 36 77
row_9 86 59 73 69 58
animals dogs cats sheep lizards birds
Rows
row_4 15 80 51 26 63
animals dogs cats sheep lizards birds
Rows
row_8 81 22 89 34 56
animals dogs cats sheep lizards birds
Rows
row_6 57 47 32 88 12
row_7 68 19 23 88 45
animals dogs cats sheep lizards birds
Rows
row_1 42 52 62 72 82
'''
row_3 dogs 86
row_9 dogs 86
row_4 cats 80
row_8 sheep 89
row_6 lizards 88
row_7 lizards 88
row_1 birds 82