[英]Iterating through selected columns and rows in Pandas
我刚开始使用Pandas进行学习,并且在后续步骤中遇到了问题。
假设我有一个带有'n'列和'm'行的数据框。
我想在索引为#2的列上进行迭代,并从第5行开始省略前几行。 我该怎么办?
我可以分别选择所需的行或列,但是无法在一个步骤中同时完成这两个操作。 有人可以在这里帮我一个主意吗?
loc和iloc方法非常有用。
如果您只想第五行和第二列:
df.iloc[5,2]
如果您想从第五行开始的所有行和第二行开始的所有列
df.iloc[5:,2:]
不要忘记像这样向df进行更改:
df = df.iloc[5:,2:]
使用pd.DataFrame.iloc
,可以使用整数索引器隔离数据pd.DataFrame.iloc
一部分。 给定一个数据框df
:
res = df.iloc[5:, 2]
请注意,Python中的索引从0开始,因此这是第6行(或第5行)。 同样,2代表第三行(或索引为2的列)。 索引语法类似于Python列表或NumPy数组索引。
由于我们仅指定一个列索引,因此输出将是pd.Series
对象,可以将其视为一列。 如果指定了多个列索引,则输出将是另一个数据框。
通常,对于熊猫来说,迭代并不是最好的选择。 您应该以使用矢量化操作为目标。 Pandas文档中有许多示例说明了矢量化计算。
如果列索引由字符串组成,则可以使用get_loc
提取给定名称的整数位置:
res = df.iloc[5:, df.columns.get_loc('some_name')]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.