【问题标题】:How to print a specific row of a pandas DataFrame?如何打印熊猫数据框的特定行?
【发布时间】:2017-10-02 00:17:34
【问题描述】:

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

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

我已经删除了空值,并检查了 DataFrame 的 dtypes,所以我不知道为什么它在该行上失败了。

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

谢谢

【问题讨论】:

  • print(df.iloc[[index]])

标签: python python-3.x pandas indexing


【解决方案1】:

使用ix 运算符:

print df.ix[159220]

【讨论】:

  • 引用此生成的消息:DeprecationWarning: .ix 已弃用。请使用 .loc 进行基于标签的索引或使用 .iloc 进行位置索引 请参阅此处的文档:pandas.pydata.org/pandas-docs/stable/… 这与 ipykernel 包是分开的,因此我们可以避免导入,直到
  • 这在 pandas 1.0(2020 年 1 月 29 日发布)中不再有效。
【解决方案2】:

听起来你在打电话给df.plot()。该错误表明您正在尝试绘制一个没有数字数据的框架。数据类型不应影响您print() 的内容。

使用print(df.iloc[159220])

【讨论】:

    【解决方案3】:

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

    用一对额外的方括号括住您的索引值

    print(df.loc[[159220]])
    

    【讨论】:

    • 我见过 3 个不同的答案,(df.loc[[]]、df.ix[] 和 df.iloc[])它们之间有区别吗?还是一个人优于其他人的优势?
    • @Acoustic77 是的。 ix 将被弃用。我解释了双括号的用途
    • 知道了,loc 比 iloc 有优势吗?
    • @Acoustic77 loc 抓取实际在索引中的内容。 iloc 按位置抓取。有时它们是相同的。没有任何偏好。看你需要什么。
    • 如果有更多列(在我的情况下为 60),它会隐藏很多列。有没有办法用这些列打印
    【解决方案4】:

    为了打印特定的行,我们有几个 pandas 方法

    1. loc - 它只获取标签,即列名或特征
    2. iloc - 这里 i 代表整数,实际上是行号
    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 ix 自 1.0 版起已从 Pandas 中删除。
    【解决方案5】:

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

    【讨论】:

    • print(df.loc[[index]]) 不适用于多张纸。我试过df = pd.read_excel(file, ["sheet1", "sheet2", "sheet3"]) 并得到一个错误:AttributeError: 'dict' object has no attribute 'loc']
    猜你喜欢
    • 2018-05-20
    • 2020-01-04
    • 2013-09-02
    • 2014-08-29
    • 2016-09-16
    • 1970-01-01
    • 2019-08-25
    相关资源
    最近更新 更多