2017-06-13 15 views
1

同じデータフレーム内の別のカラムからデータフレーム内の1つのカラムを減算しようとしています。しかし、私はいくつかの追加基準が必要です。たとえば、両方の列がNaNの場合、結果はNaNになります。 'Feb'列がNanの場合、対応する 'Jan'は数値であるため、 'Feb'intoを計算のためにゼロにし、その結果をNaNではなく' Jan 'の完全な値にする価値の計算上の誤り - ナン。条件付きカラムのPython pandas減算計算

Janは常にFebよりも高いです.2月の数字がある場合、常により高いJan番号があり、その場合Janは決してNaNではありません。

以下は、簡単なデータを示しています。

import pandas as pd 


sales = [{'account': 'Jones LLC', 'Jan': 222, }, 
     {'account': 'Alpha Co', 'Jan': 240, 'Feb': 50, }, 
     {'account': 'Delta Co' }, 
     {'account': 'Blue Inc', 'Jan': 150, }] 
df = pd.DataFrame(sales) 

df = df[['account', 'Jan', 'Feb' ]] 

df['SubtractionResult'] = df['Jan']-df['Feb'] 

print (df) 

    account Jan Feb SubtractionResult[181]: 
0 Jones LLC 222.0 NaN    NaN 
1 Alpha Co 240.0 50.0    190.0 
2 Delta Co NaN NaN    NaN 
3 Blue Inc 150.0 NaN    NaN 

私は結果は次のようになりたい:

account Jan Feb SubtractionResult[181]: 
0 Jones LLC 222.0 NaN    222.0 
1 Alpha Co 240.0 50.0    190.0 
2 Delta Co NaN NaN    NaN 
3 Blue Inc 150.0 NaN    150.0 

答えて

3

あなたがゼロで2月列に欠損値を置き換えた後、減算を行うことができますため

df['SubtractionResult'] = df['Jan'] - df['Feb'].fillna(0) 
df 
#  account  Jan Feb SubtractionResult 
#0 Jones LLC 222.0 NaN    222.0 
#1 Alpha Co 240.0 50.0    190.0 
#2 Delta Co  NaN NaN     NaN 
#3 Blue Inc 150.0 NaN    150.0 
+0

感謝迅速な対応。シンプルで、私の目的のために治療をします。 – IcemanBerlin

+0

あなたは大歓迎です! – Psidom

関連する問題