[英]How to remove observations with missing values for specific columns from pandas DataFrame?
[英]How do I sample a pandas dataframe based on observations from 5 other columns
我有一個 dataframe 的每日銷售額,為期五年,涉及 658 種不同的商品。
每個項目都是它自己獨特的產品層次結構的一部分。 所以,眼線是以下的一部分:
每個產品都有自己的層次結構路徑。 也就是說,我想從層次結構的所有路徑中抽取五種產品,然后使用這些項目過濾掉我的 dataframe。
我正在考慮將每個項目的層次結構的另一列連接在一起,這樣我就有一個列來對項目進行分組。 我不確定從那里到 go 的位置。
python有沒有辦法做到這一點?
正如 RJ 提到的那樣,我發現了這一點:
import random
df['hierarchy_group'] = df['GLBL_BUS_LN_DESC']+"_"+df['GLBL_CTGRY_DESC']+"_"+df['GLBL_SUB_CTGRY_DESC']+"_"+df['GLBL_PRDCT_IND_CUT_DESC']+"_"+df['GLBL_BRAND_DESC']+"_"+df['GLBL_SUB_BRAND_DESC']
h_count = df.groupby(['hierarchy_group']).agg({'ITEM_ROOT':'nunique'}).reset_index().sort_values('ITEM_ROOT')
h_dict = dict(zip(h_count['hierarchy_group'], h_count['ITEM_ROOT']))
h_groups = list(df['hierarchy_group'].unique())
samples = []
for k, v in h_dict.items():
df_ = df.copy()
df_ = df_[df_['hierarchy_group']==k]
item_list = list(df_['ITEM_ROOT'].unique())
sample_list = random.sample(item_list,1)
for i in sample_list:
samples.append(i)
我敢肯定有一種更簡潔的方法可以完成此操作,但它似乎有效。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.