データフレームについて、カテゴリ別に基準値を設けて、基準値以下なら"OK"、基準値を超えるなら"NG"を列に追加したです。
以下のようなコードで追加しようとしましたが、NaNとなります。
列を追加する方法をご教授いただけないでしょうか。
df2['結果'] = df2.loc['ファッション']['金額'].apply(lambda x : 'OK' if x <= 30000 else 'NG')
今回以下のような処理を行なっています。
①以下のようなCSVデータを読み込んでデータフレームを作成しています。
df = pd.read_csv('/input.csv', encoding = "shift-jis") df['日付'] = pd.to_datetime(df['日付'],format='%Y/%m/%d')
dfの中身
||項目|金額|カテゴリ大|カテゴリ小|
|:--|:--:|--:|
|日付||||
|2019-11-02|ユニクロ|10000|ファッション|NaN
|2019-11-16|電気|12000|固定費|光熱費
|・・・|・・・|・・・|・・・|・・・
|2021-03-10|スーパー|5000|食費|食材費
②上記のdfについて、カテゴリ大毎に月の合計金額を算出しています。
df2 = df.groupby(['カテゴリ大']).resample('M').sum()
df2の中身
金額 | ||
---|---|---|
カテゴリ大 | 日付 | |
ファッション | 2019-11-30 | 11000 |
2019-12-31 | 40000 | |
2020-01-31 | 20000 | |
・・・ | ・・・ | ・・・ |
食費 | 2019-11-30 | 30000 |
2019-12-31 | 50000 | |
2020-01-31 | 45000 |
上記②のdfにファッションなら、30000円以下なら"OK"、それ以外なら"NG"を列に追加したいのですが、NaNとなります。
df2['結果'] = df2.loc['ファッション']['金額'].apply(lambda x : 'OK' if x <= 30000 else 'NG')
回答2件
あなたの回答
tips
プレビュー