#python #pandas #dataframe #iteration
#питон #панды #фрейм данных #итерация
Вопрос:
У меня есть пустой фрейм данных, который при прохождении через цикл возвращает результат, соответствующий условию, представленному в последнем значении в списке, вместо учета всех его значений.
Фрейм данных заменяется для каждого условия в списке, а не добавляется в него.
Я попробовал empty_df.append(…), это все равно не сработало бы.
njobs = ['doc', 'phy', 'sci', 'math', 'stat'] empty_df = pd.DataFrame() for i in njobs: df_new = df.loc[df['title'] == i] empty_df['skills'] = df_new[['(Level 6)','(Level 5)', '(Level 4)','(Level 3)', '(Level 2)', '(Level 1)', '(Level 0)']] empty_df['cat_id'] = df_new[['(L6)','(L5)','(L4)','(L3)', '(L2)','(L1)', 'ID']] empty_df['wt'] = df_new[['Weight']] empty_df['job'] = i
Ответ №1:
Вы можете создавать каждый раз новый кадр данных в lopp и, наконец, объединять их с помощью pd.concat([df_doc, df_phy,.. df_stat])
Комментарии:
1. Я дал примерный список. У меня в списке более 500 пунктов.
2. Можете ли вы предоставить более подробную информацию? Я не думаю, что тогда вам понадобился бы цикл..