python - 如何在 Python 中按排名在数据框中的行之间平均分配“供应”?
问题描述
前任。如果我的“供应”为 10,如何将其均匀地分布在数据框中,以便每一行都为 1,直到“供应”耗尽?每行必须得到 1,然后排名第一的行才能得到另一个。以下是我希望实现的输出。
data = [['1','2','10'],['2','2','10'],['3','2','10'],['4','1','10'],['5','1','10'],['6','1','10'],['7','1','10']]
df = pd.DataFrame(data,columns=['rank','allocation','supply'])
| rank | allocation | supply |
|:---- |:---------- |:------ |
| 1 | 2 | 10 |
| 2 | 2 | 10 |
| 3 | 2 | 10 |
| 4 | 1 | 10 |
| 5 | 1 | 10 |
| 6 | 1 | 10 |
| 7 | 1 | 10 |
解决方案
一个简单的策略是将您的供应列构建为相应的列表并将其分配给您的数据框,如下所示:
df = pd.DataFrame(range(100)) # example
supply_num = 10
supply_col = ([1] * supply_num) + ([0] * (df.shape[0] - supply_num))
df['supply'] = supply_col
print(df)
推荐阅读
- reactjs - 将选定的值保留在 React 的一组单选按钮中
- html - 由于全宽行,引导 4 网格空白
- javascript - Sequelize 模型关联不会创建新列
- csv - Wix:在 UI 序列中读取文本文件
- php - php @chdir 文件未找到
- django - 如何在石墨烯解析器中调用 django 模型函数?
- pandas - 如何在熊猫中使用 crosstab .plot() 绘制图表中的轴顺序?
- flutter - Flutter YouTube 视频嵌入
- spring-boot - 将服务传递给百里香模板是不好的做法吗?
- r - R Markdown将不同的表格打印到环境