首页 > 解决方案 > 如何正确使用 iloc 索引?

问题描述

我有这个任务:

创建一个字典并将其命名为 cc。字典有两个key:data和target,对应的key值为NumPy数组。对于目标,键值是来自 df 的编码列满意度的值数组。对于数据,键值是一组子数组,每个子数组是对 df2 中特征的一个样本的观察。

我不确定我的代码是否反映了任务,有人可以看看吗?

cc = {
"data": df2.iloc[:, :-1].to_numpy(),
"target": df["satisfaction_satisfied"].to_numpy(),
}

我不确定我是否正确调用了 df & df2 并且如果我的 iloc 索引对应于所要求的内容,我将一无所知。

任何帮助将不胜感激:)

谢谢!

M。

标签: pythonpandasdictionaryindexingslice

解决方案


pandas在 Python3 中进行了测试。

import pandas as pd

data = [[1,2,3],
        [2,3,4],
        [3,4,5]]

#       col0 col1 col2
# row 0:  1   2    3
# row 1:  2   3    4
# row 2:  3   4    5

df = pd.DataFrame(data, index=['row0', 'row1', 'row2'],
                  columns=['col0', 'col1', 'col2'])


#iloc[rows, cols]
data = df.iloc[:, :-1].to_numpy()
# meaning: All rows and All cols except last col.
print(data)

可以看到代码,
iloc的第一个参数是对哪些行进行索引
的条件,第二个是对哪些列进行索引的条件。

第一个参数:表示“索引所有行。第二个参数:-1表示“索引除最后一列之外的所有列。因此,iloc 查找满足条件的元素。

您想了解 python 切片。我找到了很好的参考: https ://railsware.com/blog/python-for-machine-learning-indexing-and-slicing-for-lists-tuples-strings-and-other-sequential-types/


推荐阅读