他のカテゴリで最も頻繁に値を持つPandasデータフレームのカテゴリ値の欠損値を記入したいと思います。例えば、pandasデータフレーム内の他のカテゴリ値に基づいてカテゴリ値の欠損値を埋め込む
price | product | type
0 25 | coca | softdrink
1 94 | NaN | juice
2 57 | pepsi | softdrink
3 62 | pepsi | softdrink
4 70 | orange | juice
5 50 | grape | juice
6 60 | NaN | softdrink
まず、その結果
import pandas as pd
import numpy as np
data = {'type': ['softdrink', 'juice', 'softdrink', 'softdrink', 'juice','juice','juice'],
'product': ['coca', np.nan, 'pepsi', 'pepsi', 'orange','grape',np.nan],
'price': [25, 94, 57, 62, 70,50,60]}
df = pd.DataFrame(data)
df
は、私は私が不足している製品を埋めたい
type | product
juice | grape | 1
| orange | 1
softdrink | pepsi | 2
| coca | 1
Name: product, dtype: int64
を取得するために
df.groupby('type')['product'].value_counts()
としてGROUPBY使用します2番目の行は "ペプシ"(最も稀少)がカテゴリ「ジュース」の行6の欠損値を「ブドウ」にする。 カテゴリグループがなければ、私の解決策は列で最も頻繁に値を見つけて、この値を欠損値に割り当てることです。
コマンドの戻り値df.groupby('type')['product'].value_counts()
が
私が持っている製品+カテゴリノウハウdf.groupby('type')['product'].value_counts()['softdrink']['pepsi']
によってアクセスすることができパンダシリーズですので、私は、タスクを完了するのに苦労
df['product'].fillna(df['product'].value_counts().index[0],inplace=True)
最も頻繁に。使用
dfをあなたは私のすべての書式設定を元に戻す保管しないでくださいことはできますか? –