在 R 中,当您需要根据列名检索列索引时,您可以执行 idx <- which(names(my_data)==my_colum_name) 有没有办法对熊猫数据框做同样的事情? 原文由 ak3nat0n 发布,翻译遵循 CC BY-SA 4.0 许可协议
当然,您可以使用 .get_loc() : In [45]: df = DataFrame({"pear": [1,2,3], "apple": [2,3,4], "orange": [3,4,5]}) In [46]: df.columns Out[46]: Index([apple, orange, pear], dtype=object) In [47]: df.columns.get_loc("pear") Out[47]: 2 虽然说实话,我自己并不经常需要这个。通常按名称访问是我想要的( df["pear"] , df[["apple", "orange"]] ,或者可能 df.columns.isin(["orange", "pear"]) ),尽管我肯定会看到你想要的情况索引号。 原文由 DSM 发布,翻译遵循 CC BY-SA 3.0 许可协议
这是通过列表理解的解决方案。 cols 是要获取索引的列的列表: [df.columns.get_loc(c) for c in cols if c in df] 原文由 snovik 发布,翻译遵循 CC BY-SA 4.0 许可协议
当然,您可以使用
.get_loc()
:虽然说实话,我自己并不经常需要这个。通常按名称访问是我想要的(
df["pear"]
,df[["apple", "orange"]]
,或者可能df.columns.isin(["orange", "pear"])
),尽管我肯定会看到你想要的情况索引号。