如何在Pandas中比较DataFrame同一行的两个指定单元格?
Pandas DataFrame指定单元格比较的正确方式
你用df['col1'][0]这种链式索引的方式会触发性能问题,因为它会先提取整列数据再定位行,当DataFrame数据量较大时,这种操作会占用大量资源导致卡顿。
推荐两种高效的单个单元格比较方法:
- 使用
.at(按标签快速访问单个单元格,性能最优):
if df.at[0, 'col1'] < df.at[0, 'col2']: # 执行你的逻辑 ...
- 使用
.iloc(按位置索引,适合知道列位置的场景):
# 如果知道col1是第0列,col2是第1列,可直接写索引 if df.iloc[0, 0] < df.iloc[0, 1]: ... # 或者通过列名获取位置,更灵活 col1_idx = df.columns.get_loc('col1') col2_idx = df.columns.get_loc('col2') if df.iloc[0, col1_idx] < df.iloc[0, col2_idx]: ...
这两种方式都是直接定位到目标单元格,不会产生整列的额外计算,能彻底解决卡顿问题。
内容的提问来源于stack exchange,提问作者hvs cnc
相关产品推荐
相关产品推荐

