簡體   English   中英

如何用熊貓減去兩個部分列?

[英]How to subtract two partial columns with pandas?

我剛開始使用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更好的方法了,我當然也對那些方法df.ix開放df.ix

問題是您的索引錯誤。

要做的一件事是減去值,因此您不必處理對齊問題:

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM