pandas如何使用.loc[]访问DataFrame最后一列及最后一行?
pandas通过.loc[]访问DataFrame末列、末行末列的实现方法
.loc是pandas基于行/列标签的索引方法,只要拿到目标位置对应的实际标签,就能完成对应位置访问,不需要依赖位置索引iloc,具体实现如下:
访问最后一列
选中全部行,传入最后一列的列标签即可,返回对应列的Series对象:
import pandas as pd # 测试用DataFrame df = pd.DataFrame({ "col_a": [1, 2, 3], "col_b": [4, 5, 6], "col_c": [7, 8, 9] }) # 提取最后一列 last_col = df.loc[:, df.columns[-1]]
参数说明:
- 第一个位置传
:,代表选中所有行 - 第二个位置传
df.columns[-1],可以直接取到当前DataFrame列名序列的最后一个标签,完全符合.loc的标签传参规则,不会触发SettingWithCopyWarning告警。
访问最后一行、最后一列的内容
按返回数据结构的需求,分两种常用写法:
- 取最后一行最后一列的单个数值:
last_cell = df.loc[df.index[-1], df.columns[-1]]
- 取仅包含最后一行、最后一列的子DataFrame(保留表格结构):
给行、列参数都传入列表包裹的标签即可:
last_subdf = df.loc[[df.index[-1]], [df.columns[-1]]]
如果只需要提取最后一整行,直接写df.loc[df.index[-1], :]即可。
该方法不受自定义行索引、非字符串列名、多级索引等特殊场景影响,只要DataFrame结构正常,
df.index[-1]和df.columns[-1]永远能取到对应维度最后一个位置的标签,和直接用列名/行名访问的性能、逻辑完全一致。
内容的提问来源于stack exchange,提问作者alireza
相关产品推荐
相关产品推荐

