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

Python-PandasDataFrameで負の値を直前の正の値に置き換えます


負の値を最新の前の正の値に置き換えたいと思います。それで、正の先行値がない場合、値は0に更新されます。

入力

たとえば、入力は-

です。
DataFrame:  
One  two
0  -2   -3
1   4   -7
2   6    5
3   0   -9

出力

出力は-

である必要があります
   One two
0   0   0
1   7   0
2   4   2
3   0   2

データフレームマスキングは、負の値を置き換えるために使用されます。欠落している値を埋めるために、フォワードフィルを使用しました。まず、パンダのデータフレームを作成しましょう-

# create pandas dataframe
df = pd.DataFrame({'One': [-3, 7, 4, 0], 'two': [-6, -1, 2, -8]})

マスキングを実行してみましょう-

df = df.mask(df.lt(0)).ffill().fillna(0).astype('int32')

以下はコードです-

import pandas as pd

# create pandas dataframe
df = pd.DataFrame({'One': [-3, 7, 4, 0],'two': [-6, -1, 2, -8]})

# displaying the DataFrame
print"DataFrame: \n",df

# masking
df = df.mask(df.lt(0)).ffill().fillna(0).astype('int32')

# displaying the updated DataFrame
print"\nUpdated DataFrame: \n",df

出力

これにより、次の出力が生成されます-

DataFrame:
   One   two
0   -3   -6
1    7   -1
2    4    2
3    0   -8
Updated DataFrame:
   One   two
0    0    0
1    7    0
2    4    2
3    0    2



  1. PythonPandas-DataFrame内のすべてのNaN要素を0に置き換えます

    NaN値を置き換えるには、fillna()メソッドを使用します。以下が、いくつかのNaN値を使用してMicrosoftExcelで開いたCSVファイルであるとしましょう- まず、必要なライブラリをインポートします- import pandas as pd CSVファイルからPandasDataFrameにデータをロードする- dataFrame = pd.read_csv("C:\\Users\\amit_\\Desktop\\SalesData.csv") fillna()メソッドを使用してNaN値を0に置き換えます- dataFrame.fillna(0)

  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