How to print a specific row of a pandas DataFrame?

I have a massive dataframe, and I'm getting the error:

TypeError: ("Empty 'DataFrame': no numeric data to plot", 'occurred at index 159220')

I've already dropped nulls, and checked dtypes for the DataFrame so I have no guess as to why it's failing on that row.

How do I print out just that row (at index 159220) of the data frame?

Thanks

635544 次浏览

Use ix operator:

print df.ix[159220]

听起来像是你在打 df.plot()。该错误表明您正在尝试 阴谋一个没有数字数据的帧。数据类型不应该影响您的 print()

Use print(df.iloc[159220])

当您使用标量值调用 loc时,您将得到一个 pd.Series。该系列将有一个 dtype。如果希望看到数据框中的行,那么需要向 loc传递一个像 indexer 这样的数组。

Wrap your index value with an additional pair of square brackets

print(df.loc[[159220]])

要打印一个特定的行,我们有两个熊猫方法

  1. loc-它只获得标签,即列名或功能
  2. 这里 i 表示整数,实际上是行数
  3. 它是标签和整数的混合

How to use for specific row

  1. loc
df.loc[row,column]

对于第一行和所有列

df.loc[0,:]

对于第一行和某个特定列

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

For first row and all column

df.iloc[0,:]

对于第一行和一些特定的列,即前三个协议

df.iloc[0,0:3]

如果要在 row = 159220处显示

row=159220


#To display in a table format
display(df.loc[row:row])
display(df.iloc[row:row+1])


#To display in print format
display(df.loc[row])
display(df.iloc[row])