от
У меня есть таблицы данных, как это
ID,A,B
1,Fruit,Orange
1,Fruit,Apple
3,Fruit,Mango
4,Fruit,Banana
5,Fruit,PineApple
5,Fruit,Grapes
Я хочу изменить каждые 3 ряда таким образом, что они будут иметь общий идентификатор. Идентификатор я хочу, чтобы применить это первый код вхождения для этого каждые 3 ряда. Выход будет
ID,A,B
1,Fruit,Orange
1,Fruit,Apple
1,Fruit,Mango
4,Fruit,Banana
4,Fruit,PineApple
4,Fruit,Grapes
Можете ли вы предложить, как я мог этого добиться ?

Пожалуйста, войдите или зарегистрируйтесь для публикации ответа на этот вопрос.

1 Ответ

0 голосов
от
Использовать
GroupBy.first
с
GroupBy.transform
с групп, созданных путем целочисленного деления:
#if default RangeIndex
#df['ID'] = df.groupby(df.index // 3)['ID'].transform('first')
#general solution
df['ID'] = df.groupby(np.arange(len(df)) // 3)['ID'].transform('first')
print (df)
   ID      A          B
0   1  Fruit     Orange
1   1  Fruit      Apple
2   1  Fruit      Mango
3   4  Fruit     Banana
4   4  Fruit  PineApple
5   4  Fruit     Grapes
Деталь:
print (np.arange(len(df)) // 3)
[0 0 0 1 1 1]
Добро пожаловать на сайт ByNets, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...