我刚开始使用Pandas进行学习,因此我面临以下步骤的问题。
假设我有一个带有'n'列和'm'行的数据框。
我想对索引为#2的列进行迭代,并从第5行开始省略前几行。我该怎么办?
我可以分别选择所需的行或列,但是无法一步完成两者。有人可以在这里帮我一个主意吗?
答案 0 :(得分:2)
loc和iloc方法非常有用。
如果您只想第五行和第二列:
df.iloc[5,2]
如果您希望所有从第5个开始的行和所有从第2个开始的列
df.iloc[5:,2:]
别忘了像这样将您对df所做的更改:
df = df.iloc[5:,2:]
答案 1 :(得分:1)
使用pd.DataFrame.iloc
,您可以使用整数索引器隔离数据帧的一部分。给定数据框df
:
res = df.iloc[5:, 2]
请注意,Python中的索引从0开始,因此这是第6行(或第5行)。同样,2代表第三行(或索引为2的列)。索引语法类似于Python列表或NumPy数组索引。
由于我们仅指定一个列索引,所以输出将是一个pd.Series
对象,可以将其视为一列。如果指定了多个列索引,则输出将是另一个数据框。
通常,迭代并不是Pandas的最佳选择。您应该以使用矢量化操作为目标。 Pandas文档中有许多示例说明了矢量化计算。
如果列索引由字符串组成,则可以使用get_loc
提取给定名称的整数位置:
res = df.iloc[5:, df.columns.get_loc('some_name')]