[英]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.