Конвертировать столбцы в строки каждого n-го значения в пандах и объединить их запятой - PullRequest
0 голосов
/ 21 ноября 2018

Вот что у меня есть:

data = np.array([np.arange(1000)]*2).T

df = pd.DataFrame(data,columns=['a','b'])



    a   b
0   0   0
1   1   1
2   2   2
3   3   3
4   4   4
... ... ...
995 995 995
996 996 996
997 997 997
998 998 998
999 999 999

Вот что я пытаюсь сделать:

Для столбца a, возьмите первые 100-ые строки, добавьте к каждой строке запятую, добавьте их как собственную строку.Возьмите следующие 100 строк.Продолжайте, пока не исчерпаете точки в колонке.Повторите эти действия для столбца b

Перезапись существующего столбца или создание нового столбца не имеет значения.

Вот то, что я пытаюсь сделать так, чтобы он выглядел:

       c                   d
0,1,2,3,4,5...99    0,1,2,3,4,5...99
101, 102, 103,...   101, 102, 103,...

1 Ответ

0 голосов
/ 21 ноября 2018

Вот что вы можете сделать:

df = df.assign(cut=pd.cut(x=df.a, bins = np.arange(0, len(data)+2, 100)))

А для a вы можете сделать:

df['c'] = df.groupby('cut')['a'].transform(lambda x:  ','.join(map(str, x.values.tolist())))
df.drop('cut', axis = 1)

       a    b                    c
0      1    1  1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,1...
1      2    2  1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,1...
2      3    3  1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,1...
3      4    4  1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,1...
4      5    5  1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,1...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...