Добавьте другой элемент из списка в каждую ячейку в фрейме данных с помощью Pandas - PullRequest
0 голосов
/ 28 августа 2018

С учетом кадра данных

df = pd.DataFrame(np.random.randint(0,100,size=(15, 4)), columns=list('ABCD'))

Я хочу составить список последовательных элементов, содержащий столько элементов, сколько строк в кадре данных

l = [i for i in range(df['A'].count())]

А затем добавьте каждый элемент списка (в виде строки) в конец одного столбца в кадре данных.

df['A'] = df['A'].apply(lambda x: str(x) + str(l[i]))

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

По сути, я хочу преобразовать

A    B    C
23   16   85
 9   74   12
99   24   83

до

A     B    C
231   16   85
 92   74   12
993   24   83  

Так что в любом случае это было бы хорошо.

Спасибо за помощь!

1 Ответ

0 голосов
/ 28 августа 2018

Попробуйте:

df['A'] = df.A.astype(str) + (df.index+1).astype(str)

>>> df
     A   B   C
0  231  16  85
1   92  74  12
2  993  24  83

Это предполагает, что ваш фрейм данных имеет регулярный RangeIndex. Если нет, вы можете использовать:

df['A'] = df.A.astype(str) + (df.reset_index().index + 1).astype(str)

или

df['A'] = df.A.astype(str) + (pd.RangeIndex(len(df)) + 1).astype(str)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...