【问题标题】:Trouble printing specific columns with pandas dataframes using .iloc使用 .iloc 打印带有熊猫数据框的特定列时遇到问题
【发布时间】:2019-05-31 09:27:36
【问题描述】:

我正在使用 pandas 创建一个 4x4 数据框,并尝试使用 print(df.iloc[:][2:]) 打印包含所有行数据的最后 2 列,但是它正在打印最后两行和所有列 - 与 print(df.iloc[2:][:]) 相同。我是否误解了控制台如何解释括号和冒号?

这是我正在执行的代码:

import pandas as pd
import numpy as np

data1 = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12],
                  [13, 14, 15, 16]])
index = ['Worst', 'Index', 'Ever', 'Dude']
columns = ['Best', 'Columns', 'Today', 'Bro']
sick_df = pd.DataFrame(data = data1, index = index, columns = columns)

print(sick_df)
print('\n', sick_df.iloc[:][2:])

这是上面代码的输出:

       Best  Columns  Today  Bro
Worst     1        2      3    4
Index     5        6      7    8
Ever      9       10     11   12
Dude     13       14     15   16

       Best  Columns  Today  Bro
Ever     9       10     11   12
Dude    13       14     15   16

我期待第二种打印方法显示所有四行和最后两列。这个输出是我期望从print('\n', sick_df.iloc[2:][:]) 得到的,事实上,当我将第二个打印方法更改为这一行时,我得到了完全相同的输出。

【问题讨论】:

  • df.iloc[:,2:]

标签: python-3.x pandas dataframe indexing


【解决方案1】:

iloc和loc的正确语法是[row index, col index]

sick_df.iloc[:, -2:]

您的代码返回不同结果的原因是由于链接,

sick_df.iloc[:]

返回整个数据框。现在,当您将其与

链接时
sick_df.iloc[:][2:]

你得到了从索引 2 到数据框末尾的所有行。

【讨论】:

    猜你喜欢
    • 2013-11-29
    • 1970-01-01
    • 1970-01-01
    • 2017-10-02
    • 1970-01-01
    • 1970-01-01
    • 2015-08-20
    • 1970-01-01
    • 2020-07-22
    相关资源
    最近更新 更多