から平均価格に基づいて新しいカテゴリの列を作成し、私は2つの列があります。Item_Identifierと販売(実際には、そこに20個の列がテーブルにあるが、他の列この場合は考慮する必要はありません)。販売価格を低、中、高の3つのカテゴリに分ける列をテーブルに作成します。同じItem_Identifier私は平均を得るためにpivot_table使用し、異なる販売価格を持つことができるためのpython 3. +、私のテーブルでpivot_table
Item_Identifier Sales Categories
Milk 500 medium
Milk 1200 medium
Milk 2000 medium
Beef 60 high
Beef 6000 high
Tea 150 low
Tea 100 low
Tea 200 low
. .
. .
. .
:私が欲しい
Item_Identifier Sales
Milk 500
Milk 1200
Milk 2000
Beef 60
Beef 6000
Tea 150
Tea 100
Tea 200
. .
. .
. .
ファイナルテーブル:
初期テーブルは次のようになります各商品の価格。そして、私はitem_sale_avgによって3つのカテゴリ(低、中、高)を特定したいと思います。
マイpivot_tableコードはこれを好き:
item_sale_avg=combine.pivot_table(values='Sales',index='Item_Identifier')
私はこの問題を解決するために以下のコードを使用しようとするが、それは本当に私が望む結果得られません。
def price_category(data,id_col,new_col,price_pivot_table):
data[new_col]=''
i=-1
for item in data[id_col]:
i+=1
if price_pivot_table[item]>500:
data.loc[i,new_col]='low'
elif price_pivot_table[item]>=500 or price_pivot_table[item]<1500:
data.loc[i,new_col]='medium'
else:
data.loc[i,new_col]='high'
をそして、私はことを実現上記のコードでさえ、かなり遅く動作します。私にアイデアを教えてください。どうもありがとう。
感謝。しかし、私はpivot_tableからの平均価格を見て、新しい列を作成したいと思います。 item_sale_avgはpivot_tableの名前です。 –
変更された解決策を確認してください。 – jezrael
おっと、申し訳ありません。修正していただきありがとうございます。 – jezrael