Для чего [0] в конце?

В настоящее время я изучаю и работаю с pandas DataFrame, и мне пришлось решить проблему, когда мне нужно заполнить значения NaN режимом с соответствующими сериями, это работает, но я не могу понять, что такое [0] в конце для . Также возможно ли выполнить то же самое для всего DataFrame за один раз?

df['col1'] = df['col1'].fillna(df['col1'].mode()[0])

import pandas as pd
import numpy as np
data = {'birds': ['Cranes', 'Cranes', 'plovers', 'spoonbills', 'spoonbills', 'Cranes', 'plovers', 'Cranes', 'spoonbills', 'spoonbills', 'Cranes'], 
        'age': [3.5, 4, 1.5, np.nan, 6, 3, 5.5, np.nan, 8, 4, 3.5], 'visits': [2, 4, 3, 4, 3, 4, 2, 2, 3, 2, 2], 
        'priority': ['yes', 'yes', 'no', np.nan, 'no', 'no', 'no', 'yes', 'no', 'no','yes']}
labels = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k']
df = pd.DataFrame(data)
df.rename(index = {0:'a', 1:'b', 2:'c', 3:'d', 4:'e', 5:'f', 6:'g', 7:'h', 8:'i', 9:'j', 10:'k'})
df.iloc[::2]

**df['age'] = df['age'].fillna(df['age'].mode()[0])
df**
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
2
0
52
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

mode() возвращает серию (тип pandas DataFrame), а не одно значение. Это связано с тем, что технически в наборе данных может быть несколько режимов. Индексируя с помощью [0], вы выбираете первый режим в наборе данных.

Кроме того, для этого для всего набора данных вы можете использовать:

df = df.apply(lambda x: x.fillna(x.mode()[0]) if x.dtype.name == 'object' else x)

Согласно документации , вызываемый вами метод mode() возвращает объект DataFrame. Этот объект описан здесь, где он описан как «Двумерные, изменяемые по размеру, потенциально гетерогенные табличные данные». Это означает, что вы можете получить доступ к его наборам данных через индекс. Вызов метода df['col1'].mode()[0] вызывает метод mode() в вашем Dataframe df, а затем берет с собой первую запись через [0].

Другие вопросы по теме