Python
 Computer >> コンピューター >  >> プログラミング >> Python

Python-PandasでGroupByを使用して負の値と正の値を合計する


負の値と正の値の合計を見つける方法を見てみましょう。最初に、正と負の値を持つデータフレームを作成します-

dataFrame = pd.DataFrame({'Place': ['Chicago', 'Denver', 'Atlanta', 'Chicago', 'Dallas', 'Denver','Dallas', 'Atlanta'], 'Temperature': [-2, 30, -5, 10, 30, -5, 20, -10]})

次に、groupbyを使用して、[配置]列に基づいてグループ化します-

groupRes = dataFrame.groupby(dataFrame['Place'])

ラムダ関数を使用して、正の値と負の値を返します。また、正の値と負の値を個別に追加しました-

# lambda function
def plus(val):
   return val[val > 0].sum()
def minus(val):
   return val[val < 0].sum()

以下は完全なコードです-

import pandas as pd

# create a DataFrame with temperature in celsius
dataFrame = pd.DataFrame({'Place': ['Chicago', 'Denver', 'Atlanta', 'Chicago', 'Dallas', 'Denver','Dallas', 'Atlanta'], 'Temperature': [-2, 30, -5, 10, 30, -5, 20, -10]})
print(dataFrame)

# using groupby to group on the basis of place
groupRes = dataFrame.groupby(dataFrame['Place'])

# lambda function
def plus(val):
   return val[val > 0].sum()
def minus(val):
   return val[val < 0].sum()

print(groupRes['Temperature'].agg([('negTemp', minus), ('posTemp', plus)]))

出力

これにより、次のコードが生成されます-

      Place      Temperature
0   Chicago               -2
1    Denver               30
2   Atlanta               -5
3   Chicago               10
4    Dallas               30
5    Denver               -5
6    Dallas               20
7   Atlanta              -10
           negTemp  posTemp
Place
Atlanta        -15       0
Chicago         -2      10
Dallas           0      50
Denver          -5      30

  1. PythonPandas-補間法を使用してNaN値を入力します

    Interpolate()メソッドを使用して、NaN値を入力します。以下が、いくつかのNaN値を使用してMicrosoftExcelで開いたCSVファイルであるとしましょう- CSVファイルからPandasDataFrameにデータをロードする- dataFrame = pd.read_csv("C:\\Users\\amit_\\Desktop\\SalesData.csv") NaN値をinterpolate()-で埋めます dataFrame.interpolate() 例 以下はコードです- import pandas as pd # Load dat

  2. Python Pandas –null以外の値を逆方向に伝播する

    「方法」を使用します ” fillnaのパラメータ () 方法。後方塗りつぶしには、値「bfill」を使用します 以下に示すように- fillna(method='bfill') 以下が、いくつかのNaN値を使用してMicrosoftExcelで開いたCSVファイルであるとしましょう- まず、必要なライブラリをインポートします- import pandas as pd CSVファイルからPandasDataFrameにデータをロードする- dataFrame = pd.read_csv("C:\\Users\\amit_\\Desktop\\SalesD