python - 循环遍历单元格范围(每 3 个单元格)并为其添加排名
问题描述
问题是我正在尝试使用 pandas 为该列中的每 3 个单元格进行排名。例如:
这是我想要的结果,我 不知道怎么做。
我试过这样的事情:
for i in range(df.iloc[1:],df.iloc[,:],3):
counter = 0
i['item'] += counter + 1
代码完全错误,但我需要范围方面的帮助并将 df.iloc 放在 pandas 的括号中。
解决方案
这符合要求吗?
import pandas as pd
df = pd.DataFrame()
df['Item'] = ['shoes','shoes','shoes','shirts','shirts','shirts']
df2 = pd.DataFrame()
for i, item in enumerate(df['Item'].unique(), 1):
df2.loc[i-1,'rank'] = i
df2.loc[i-1, 'Item'] = item
df2['rank'] = df2['rank'].astype('int')
print(df)
print("\n")
print(df2)
df = df.merge(df2, on='Item', how='inner')
print("\n")
print(df)
推荐阅读
- html - 边距底部不起作用并显示间隙(html 和 css)
- java - __consumer_offsets 主题在使用 zookeeper 和 bootstrap-server 描述时显示不同的配置
- python - ValidationError 没有打印在我的网站上
- java - 使用“下一个”和“上一个”按钮 Java 移入“字符串数组”
- mysql - 如何在 SQL 中使用数据透视表
- usersnap - usersnap `user` 对象中的 `userId` 是什么?
- html - 仅当另一个元素不在屏幕上时才显示一个元素
- android - 如何使用 Uri 打开特定目录?
- datatable - 如何使用新参数重新加载 KTDatatable?
- java - 带有 StringBuilder 的 Stream.collect 有效,但自定义类不起作用