Как напечатать определенную строку в 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

Чтобы напечатать определенную строку, у нас есть пара методов панд

  1. loc - он получает только метку, т.е. имя столбца или функции
  2. iloc - здесь я обозначаю целое число, на самом деле номер строки
  3. ix - это сочетание метки, а также целое число

Как использовать для конкретной строки

  1. loc
df.loc[row,column]

Для первого ряда и всего столбца

df.loc[0,:]

Для первого ряда и некоторого конкретного столбца

df.loc[0,'column_name']
  1. iloc

Для первого ряда и всего столбца

df.iloc[0,:]

Для первого ряда и некоторого определенного столбца, т.е. первых трех столбцов

df.iloc[0,0:3]

Ответ 4

Похоже, вы вызываете df.plot(). Эта ошибка указывает на то, что вы пытаетесь построить кадр, который не имеет числовых данных. Типы данных не должны влиять на то, что вы print().

Используйте print(df.iloc[159220])