Python 熊猫:如何根据频率分布将一列遵循幂律的数据帧一分为二?
我有一个100万条记录的数据框,有5列Python 熊猫:如何根据频率分布将一列遵循幂律的数据帧一分为二?,python,pandas,sampling,power-law,Python,Pandas,Sampling,Power Law,我有一个100万条记录的数据框,有5列 unique_index,name,company_name,city_id,state_id 列,company\u name,具有10万条唯一记录。这遵循幂律。前5000名公司名称覆盖了70%的记录 我想从数据排名前5000位的公司和剩余的公司中抽取相同数量的样本 我尝试了pd.qcut(df['company\u name',[0.25,1]。这给了我以下错误: TypeError:unorderable types:str()你可以尝试通过va
unique_index,name,company_name,city_id,state_id
列,company\u name
,具有10万条唯一记录。这遵循幂律。前5000名公司名称
覆盖了70%的记录
我想从数据排名前5000位的公司和剩余的公司中抽取相同数量的样本
我尝试了pd.qcut(df['company\u name',[0.25,1]
。这给了我以下错误:
TypeError:unorderable types:str()你可以尝试通过value\u counts()
来抓取排名靠前的公司,然后用True/False
创建一个新的列,如果它在排名靠前的公司之内/之外。我想它看起来会像这样:
top5000 = df['company_name'].value_counts().index[0:5000].tolist()
df['InTop'] = df['company_name'].isin(top5000)
这将允许您从df['InTop']==True
组和df['InTop']==False