如何用pandas减去两个部分列?

2024-09-30 20:38:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我刚刚开始使用Pandas,所以可能会遗漏一些重要的内容,但我似乎无法成功地减去我正在处理的两个专栏。我在excel中导入了一个电子表格,如下所示:

df = pd.read_excel('/path/to/file.xlsx',sheetname='Sheet1')

执行df.head()时,我的表与以下类似:

^{pr2}$

我不关心“东西”;我只想减去数据的两列,使其成为自己的列。因此,似乎很明显,我应该删去我不感兴趣的行,然后处理剩下的行,因此我尝试了以下方法:

dataCol1 = df.ix[2:,0:1]
dataCol2 = df.ix[2:,1:2]
print(dataCol1.sub(dataCol2,axis=0))

但结果是

             a          b
2           NaN        NaN
3           NaN        NaN
4           NaN        NaN
...         ...        ...
89          NaN        NaN

如果我也尝试print(dataCol1-dataCol2),我也会得到相同的结果。但我不知道这两个列的减法结果是怎样的。因为例如,当我print(dataCol1)时,我确实获得了要处理的列:

      a      
2     data     
3     data   
4     data     
...   ...
89    data      

有没有办法既简单又直接地从Excel电子表格中工作,又用所述电子表格的列的截断部分执行基本操作?我肯定比用这些方法更好。在


Tags: 方法内容pandasdfdatananexcel电子表格
1条回答
网友
1楼 · 发布于 2024-09-30 20:38:10

问题是你的指数错配了。在

要做的一件事是减去这些值,这样就不必处理对齐问题:

dataCol1 = df.iloc[2: , 0:1]   # ix is deprecated
dataCol2 = df.iloc[2: , 1:2]

result = pd.DataFrame(dataCol1.values - dataCol2.values)

相关问题 更多 >