#python #python-3.x #pandas
#python #python-3.x #pandas
Вопрос:
Я пытаюсь автоматически добавлять идентификатор # к каждой строке в фрейме данных pandas.
пример:
ID Ticker
0 0 AAPL
1 0 TSLA
2 0 GOOG
Столбец ‘ID’ должен автоматически заполняться следующим образом:
вывод:
ID Ticker
0 1 AAPL
1 2 TSLA
2 3 GOOG
Однако у меня возникают проблемы с достижением этого. Я пробовал несколько вещей, в том числе создание функции для перебора каждой строки, но пока у меня возникают проблемы с этой, казалось бы, простой задачей. Я надеялся, что кто-нибудь здесь сможет мне помочь в этом.
пример кода:
import pandas as pd
df1 = pd.DataFrame({'ID': [0, 0, 0],
'Ticker': ['AAPL', 'TSLA', 'GOOG']})
print(df1)
output = pd.DataFrame({'ID': [1, 2, 3],
'Ticker': ['AAPL', 'TSLA', 'GOOG']})
print(output)
Спасибо!
Ответ №1:
Попробуй это,
df['ID'] = df.index 1
При этом значение index 1 добавляется в столбец ID, если ваш index
номер указан правильно
Комментарии:
1. Я предполагаю, что каждый тикер может появляться более одного раза и должен иметь один и тот же идентификатор
Ответ №2:
Это даст каждому тикеру уникальный числовой идентификатор
df1['ID'] = df1['Ticker'].astype('category').cat.codes
Комментарии:
1. Спасибо за ваш комментарий. К сожалению, мне не нужно классифицировать тикеры по идентификационному номеру, но спасибо, что подумали и добавили это в сообщение.
Ответ №3:
import pandas as pd
df1 = pd.DataFrame({'ID': [0, 0, 0],
'Ticker': ['AAPL', 'TSLA', 'GOOG']})
df1.ID = [x for x in range(1, len(df1.values) 1)]
print(df1)
ID Ticker
0 1 AAPL
1 2 TSLA
2 3 GOOG
Комментарии:
1. Пожалуйста, не публикуйте только код в качестве ответа, но также предоставьте объяснение, что делает ваш код и как он решает проблему вопроса. Ответы с объяснением обычно более полезны и более высокого качества и с большей вероятностью привлекут голоса.