Как напечатать определенную строку в pandas DataFrame?
У меня массивный dataframe, и я получаю ошибку:
TypeError: ("Empty 'DataFrame': no numeric data to plot", 'occurred at index 159220')
Я уже сбросил нули и проверил dtypes для DataFrame, поэтому я не могу догадаться, почему он не работает в этой строке.
Как распечатать только эту строку (по индексу 159220) кадра данных?
благодаря
Ответы
Ответ 1
Когда вы вызываете loc
со скалярным значением, вы получаете pd.Series
. У этой серии будет один dtype
. Если вы хотите видеть строку, как она есть в фреймворке данных, вам нужно передать массив, как indexer, в loc
.
Оберните значение индекса с помощью дополнительной пары квадратных скобок
print(df.loc[[159220]])
Ответ 2
Используйте оператор ix
:
print df.ix[159220]
Ответ 3
Чтобы напечатать определенную строку, у нас есть пара методов панд
-
loc
- он получает только метку, т.е. имя столбца или функции -
iloc
- здесь я обозначаю целое число, на самом деле номер строки -
ix
- это сочетание метки, а также целое число
Как использовать для конкретной строки
-
loc
df.loc[row,column]
Для первого ряда и всего столбца
df.loc[0,:]
Для первого ряда и некоторого конкретного столбца
df.loc[0,'column_name']
-
iloc
Для первого ряда и всего столбца
df.iloc[0,:]
Для первого ряда и некоторого определенного столбца, т.е. первых трех столбцов
df.iloc[0,0:3]
Ответ 4
Похоже, вы вызываете df.plot()
. Эта ошибка указывает на то, что вы пытаетесь построить кадр, который не имеет числовых данных. Типы данных не должны влиять на то, что вы print()
.
Используйте print(df.iloc[159220])