【发布时间】:2017-10-15 23:09:12
【问题描述】:
我刚刚开始使用 Pandas,所以我可能遗漏了一些重要的东西,但我似乎无法成功减去我正在使用的两列。我在 excel 中有一个电子表格,我按如下方式导入:
df = pd.read_excel('/path/to/file.xlsx',sheetname='Sheet1')
我在做df.head() 时的表如下所示:
a b c d
0 stuff stuff stuff stuff
1 stuff stuff stuff stuff
2 data data data data
... ... ... ... ...
89 data data data data
我不关心“东西”;我想仅减去两列数据并将其设为自己的列。因此,很明显我应该剪掉我不感兴趣的行并处理剩余的行,所以我尝试了以下方法:
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),我会得到相同的结果。我真的不明白这两种减法运算如何不仅产生所有 NaN,而且产生两列而不是只有一列具有最终结果。因为例如当我print(dataCol1) 时,我确实获得了我想要使用的列:
a
2 data
3 data
4 data
... ...
89 data
有没有什么方法既可以简单直接地从 Excel 电子表格中工作,又可以对所述电子表格的列的截断部分执行基本操作?也许有比使用df.ix 更好的方法来解决这个问题,我也绝对对这些方法持开放态度。
【问题讨论】:
标签: python pandas dataframe subtraction