Переберите диапазон ячеек (каждые 3 ячейки) и добавьте к нему рейтинг - PullRequest
0 голосов
/ 01 октября 2019

Проблема в том, что я пытаюсь сделать ранжирование для каждых 3 ячеек в этом столбце, используя панд. Например:

Это результат, который я хочу Я понятия не имею, как это сделать.

Я пробовал что-то вроде этого:

for i in range(df.iloc[1:],df.iloc[,:],3):
counter = 0
i['item'] += counter + 1

Код совершенно неверный, но мне нужна помощь с диапазоном и поместил df.iloc в скобки в пандах.

1 Ответ

0 голосов
/ 02 октября 2019

Соответствует ли это требованиям?

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)
...