Python子集和切片 [index, :] format

标签 python pandas dataframe

我看到 python DataFrames 有时使用 [index,:] 符号进行子集化,而有时使用 [index] 就足够了。

使用一个简单的玩具示例:

df = pd.DataFrame({'a':[1,5,10,15,20,50,88]})
idx = [2,4,6]

我们可以使用以下任一方法调用 iloc 方法:

df.iloc[idx,:]
df.iloc[idx]

获取结果:

    a
2  10
4  20
6  88

调用方式有区别吗?我应该更喜欢使用其中一种吗?

最佳答案

df.iloc[idx,:] 中,冒号分割列。在 python 中,当你使用 [:] 时,你会切掉所有选项。例如:

df = pd.DataFrame({'a':[1,5,10,15,20,50,88], 'b':[1,5,10,15,20,50,88]})
idx = [2,4,6]

没有列切片:

df.iloc[idx]

输出:

    a   b
2   10  10
4   20  20
6   88  88

使用列切片:

df.iloc[idx,:1]

输出:

    a
2   10
4   20
6   88

在这种情况下,问题是您是否要显式切分所有列。以我谦虚的观点,我认为标准形式 df.iloc[idx] 会很清楚。

http://pandas.pydata.org/pandas-docs/stable/indexing.html#selection-by-position

关于Python子集和切片 [index, :] format,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36024475/

相关文章:

python - 通过将值分配为 pandas 数据框中的列来对数据框中的行进行分组

python - 当有多个变量时使用lambda在python数据帧中实现if-else

python - 按特定列对行(组内)的 Pandas df 子集进行排序

python - Pandas:用两列之一的值替换 Nan

python - 维护重复元素和非重复元素之间的关系

python - 正确使用来自 tfds.load() 的 Cifar-10 数据集

python - sqlalchemy 创建一个整数列表作为子查询

python - 使用选择界面创建 Python CLI

python - Pandas 在移动窗口中获得最小总数

python - "Bin labels must be one fewer than the number of bin edges"通过 pd.qcut 重复后 = 'drop' kwarg