How to print a specific row of a pandas DataFrame?

孤者浪人 提交于 2020-12-27 07:32:27

问题


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


回答1:


When you call loc with a scalar value, you get a pd.Series. That series will then have one dtype. If you want to see the row as it is in the dataframe, you'll want to pass an array like indexer to loc.

Wrap your index value with an additional pair of square brackets

print(df.loc[[159220]])



回答2:


To print a specific row we have couple of pandas method

  1. loc - It only get label i.e column name or Features
  2. iloc - Here i stands for integer, actually row number
  3. ix - It is a mix of label as well as integer

How to use for specific row

  1. loc
df.loc[row,column]

For first row and all column

df.loc[0,:]

For first row and some specific column

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

For first row and all column

df.iloc[0,:]

For first row and some specific column i.e first three cols

df.iloc[0,0:3]



回答3:


Use ix operator:

print df.ix[159220]



回答4:


Sounds like you're calling df.plot(). That error indicates that you're trying to plot a frame that has no numeric data. The data types shouldn't affect what you print().

Use print(df.iloc[159220])




回答5:


If you want to display at row=159220

row=159220

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

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


来源:https://stackoverflow.com/questions/43772362/how-to-print-a-specific-row-of-a-pandas-dataframe

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!