Я вытаскиваю свои волосы на этом. Помощь оценена.
У меня есть фрейм данных, который я собираю, который частично включает в себя консолидацию данных, которые находятся в нескольких строках в одну. Я пытаюсь использовать df.loc для этого:
df.loc[df['foo'] == 1, 'Output Column'] = df.loc[df['bar'] == 2, 'Desired Column']
Итак, я хочу, чтобы для любой строки, где 'foo' = 1, поищите, где 'bar' = 2, и поместите значение, которое находится в 'Желаемом столбце', в исходную строку. По сути, это объединит строки для создания более чистого вывода. В качестве игрушечного примера ...
(отредактировано, чтобы показать, где мой код работает неправильно)
Вот что я хочу ...
До:
idx foo bar Desired Column Output Column
0 1
1 2 Hi there!
2 1
3 6
После того, как:
idx foo bar Desired Column Output Column
0 1 Hi there!
1 2 Hi there!
2 1 Hi there!
3 6
Однако вот что я на самом деле получаю:
До:
idx foo bar Desired Column Output Column
0 1
1 2 Hi there!
2 1
3 6
После того, как:
idx foo bar Desired Column Output Column
0 1
1 2 Hi there! Hi there!
2 1
3 6
Спасибо за вашу помощь!