如何对两个Pandas DataFrame指定列做差并生成新DataFrame
解决方法:正确访问整数列名并计算差值
你遇到的问题是因为Pandas中整数类型的列名无法通过.运算符访问,.后面需要跟合法的Python标识符(不能以数字开头),所以df1.3这种写法会报错。
你可以用方括号[]来访问整数列名,直接对两列做差就能得到想要的结果:
# 直接计算差值,得到一个Series df3 = df1[3] - df2[3] # 如果需要将结果转为单列DataFrame(和你示例的结构一致) df3 = (df1[3] - df2[3]).to_frame()
补充说明:
因为你提到df1和df2的列0、1、2内容始终一致,说明两个DataFrame的行是一一对应的,Pandas会自动按索引对齐行进行计算,不用担心匹配错误的问题。
内容的提问来源于stack exchange,提问作者ChrizZlyBear
相关产品推荐
相关产品推荐

