Как добавить столбцы в pandas Dataframe, строка которого заполнена диапазоном на основе значения столбца - PullRequest
0 голосов
/ 11 октября 2018

Я создал df, а затем повторил строки в этом df на основе значений в столбце.Например:

df = pd.DataFrame({
        'a': [1,2,3],
        'b': ['x','y','z']
        })

Затем я повторил строки, основываясь на значении столбца, например:

df = df.loc[df.index.repeat(df['a'])]   

, и получил:

df
Out[150]: 
   a  b
0  1  x
1  2  y
1  2  y
2  3  z
2  3  z
2  3  z

Теперь я хочучтобы добавить еще один столбец со значениями, имеющими счетчик приращений на основе значений столбца (в данном случае это значения из столбца a), требуется следующий вывод:

df
Out[150]: 
   a  b  c
0  1  x  1
1  2  y  1
1  2  y  2
2  3  z  1
2  3  z  2
2  3  z  3

Как это сделать.Функция Range не работает в векторизованном виде, поэтому мне нужна помощь.Спасибо.

1 Ответ

0 голосов
/ 11 октября 2018

Сначала используйте cumcount по значениям индекса, а затем создайте значение по умолчанию index по reset_index с drop=True:

df = df.loc[df.index.repeat(df['a'])]   
df['c'] = df.groupby(level=0).cumcount() + 1
df = df.reset_index(drop=True)
print (df)
   a  b  c
0  1  x  1
1  2  y  1
2  2  y  2
3  3  z  1
4  3  z  2
5  3  z  3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...