如何打印pandas DataFrame的特定行?

时间:2017-05-04 01:22:15

标签: python python-3.x pandas indexing

我有一个庞大的数据框,我收到错误:

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

我已经删除了空值,并检查了数据框架的dtypes,因此我无法猜测它为什么会在该行上失败。

如何打印出数据框的那一行(索引号159220)?

由于

6 个答案:

答案 0 :(得分:27)

当您使用标量值调用loc时,您会得到pd.Series。那个系列将有一个dtype。如果您希望在数据框中看到该行,则需要将索引器之类的数组传递给loc

使用另外一对方括号

包装索引值
print(df.loc[[159220]])

答案 1 :(得分:14)

使用ix运算符:

print df.ix[159220]

答案 2 :(得分:12)

要打印特定的行,我们有几种熊猫方法

  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]

答案 3 :(得分:4)

听起来你正在呼叫df.plot()。该错误表示您正在尝试绘制没有数字数据的帧。数据类型不应影响您print()的内容。

使用print(df.iloc[159220])

答案 4 :(得分:0)

print(df.iloc[[index__number]])

答案 5 :(得分:0)

如果要显示在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])