パンダ: 条件に基づいて 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()関数の完全なドキュメントはここで見つけることができます。

追加リソース

次のチュートリアルでは、パンダで他の一般的な操作を実行する方法を説明します。

パンダで欠損値を数える方法
PandasでNaN値を含む行を削除する方法
Pandasで特定の値を含む行を削除する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です