为何Pandas中apply使用axis='columns'而非axis='rows'?
Pandas中apply方法axis参数的理解(葡萄酒星级转换案例)
首先得明确Pandas里
apply的axis参数不是按直观的"行/列"方向定义,而是按操作维度区分:- 当设置
axis='columns'(等价于axis=1)时,apply会逐行把整行数据传递给自定义函数。这正好匹配你的stars()函数需求——需要同时获取同一行的country和points字段计算星级,此时传入的是一个以列名为索引的Series,你可以直接通过row['country']、row['points']提取对应值。 - 若设置
axis='rows'(等价于axis=0),apply会逐列传递整列数据,也就是把某一列的所有行数据传给函数,这显然无法满足stars()同时获取同一行两个字段的逻辑,完全不符合需求。
- 当设置
简单记忆技巧:
axis='columns'对应"处理每一行"(跨列整合数据),axis='rows'对应"处理每一列"(跨行整合数据)。本质上axis指定的是函数遍历的维度方向,axis=1意味着沿着列的方向遍历,每次取一行的全量列数据。
内容的提问来源于stack exchange,提问作者Ah Dean
相关产品推荐
相关产品推荐

