Я пытаюсь получить выбранные столбцы в фрейме данных, однако столбец, для которого я пытаюсь получить выбранные столбцы, должен быть уникальным.
Таким образом, Dataframe имеет все значения в строках, и, пожалуйста, не пытайтесь связать что-либо с данными. ДФ выглядит примерно так:
И я хочу запустить .unique() в столбце C и получить столбцы D и E вместе с различными/уникальными значениями C.
Теперь я добился желаемого результата, но я уверен, что это можно сделать и в очень нескольких строках. Для справки, вот мой код. main_df содержит приведенную выше таблицу.
dependent_variables = ["D", "E"]
Dictionary = pd.DataFrame()
new_book = {}
dependent_variables_index = []
for no, col in enumerate(main_df.columns):
print(no, col)
if col in dependent_variables:
dependent_variables_index.append(no)
for cid in total_categories:
try:
new_book[cid] = main_df[main_df["C"] == int(cid)].iloc[0, dependent_variables_index].to_dict()
except KeyError:
new_book[cid] = main_df[main_df["C"] == str(cid)].iloc[0, dependent_variables_index].to_dict()
for k, v in new_book.items():
Dictionary = Dictionary.append(v, ignore_index=True)
Dictionary.index = list(new_book.keys())
Category_Dictionary = Dictionary.reset_index().rename(columns = {"index": "C"})
Опять же, я мог бы сгенерировать этот вывод, однако я ищу более оптимизированный способ сделать то же самое.
Это:
df[['C','D','E']].drop_duplicates('C')
Выход:
C D E
0 1 txt num
1 2 txt doub
4 3 char doub
5 4 char deci
7 5 char num
Дайум, это было так просто! Ты пришел мне на помощь во второй раз, @Quang. Я думаю, мне нужно больше искать документацию по преобразованию данных.