パンダ: 条件に基づいて ffill を使用する方法
次の基本構文を使用して、パンダのffill()関数を使用して、別の列の条件に基づいて塗りつぶし値を渡すことができます。
df[' sales '] = df. groupby (' store ')[' sales ']. ffill ()
この特定の例では、 store列の前の値がstore列の現在の値と等しい場合にのみ、 sales列にフィル値を渡します。
次の例は、この構文を実際に使用する方法を示しています。
例: Pandas で条件に基づいて ffill を使用する
4 つの営業四半期にわたる 2 つの異なる小売店の総売上高に関する情報を含む次のパンダ データフレームがあるとします。
import pandas as pd import numpy as np #createDataFrame df = pd. DataFrame ({' store ': ['A', 'A', 'B', 'A', 'B', 'A', 'B', 'B'], ' quarter ': [1, 2, 1, 3, 2, 4, 3, 4], ' sales ': [12, 22, 30, np.nan, 24, np.nan, np.nan, np.nan]}) #view DataFrame print (df) store quarter sales 0 A 1 12.0 1 to 2 22.0 2 B 1 30.0 3 to 3 NaN 4 B 2 24.0 5 A 4 NaN 6 B 3 NaN 7 B 4 NaN
Sales列には複数の NaN 値があることに注意してください。
Sales列の前の値を使用してこれらの NaN 値を入力したいが、値が正しい店舗に対応していることを確認したいとします。
これを行うには、次の構文を使用できます。
#group by store and forward fill values in sales column df[' sales '] = df. groupby (' store ')[' sales ']. ffill () #view updated DataFrame print (df) store quarter sales 0 A 1 12.0 1 to 2 22.0 2 B 1 30.0 3 A 3 22.0 4 B 2 24.0 5 A 4 22.0 6 B 3 24.0 7 B 4 24.0
Sales列の NaN 値は以前の Sales 値に置き換えられており、値は正しいストアに対応していることに注意してください。
例えば:
- 行インデックスの位置 3 の NaN 値は、店舗 A に対応する sales 列の最新の値である値22に置き換えられました。
- 行インデックスの位置 6 の NaN 値は、店舗 B に対応する sales 列の最新の値である値24に置き換えられました。
等々。
注: pandas ffill()関数の完全なドキュメントはここで見つけることができます。
追加リソース
次のチュートリアルでは、パンダで他の一般的な操作を実行する方法を説明します。