Я получил панд dataframe, которая строится как таковые,Присвоение значения столбца на основе нескольких столбцов в условиях питона
ID Col1 Col2
1 50 12:23:01
1 34 12:25:11
1 65 12:32:25
1 98 12:45:08
2 23 11:09:10
2 12 11:12:43
2 56 11:13:12
2 34 11:14:26
2 77 11:16:02
3 64 14:01:11
3 34 14:01:13
3 48 14:02:32
Что мне нужно, чтобы иметь возможность поиска в повторяющейся ID
значения, чтобы найти условие в столбце 1, например Col1==34
. Исходя из этого, мне нужно создать новый столбец Col3
, который принимает соответствующее значение в Col2
. Конечный результат, который мне нужен, показан ниже.
ID Col1 Col2 Col3
1 50 12:23:01 12:25:11
1 34 12:25:11 12:25:11
1 65 12:32:25 12:25:11
1 98 12:45:08 12:25:11
2 23 11:09:10 11:14:26
2 12 11:12:43 11:14:26
2 56 11:13:12 11:14:26
2 34 11:14:26 11:14:26
2 77 11:16:02 11:14:26
3 64 14:01:11 14:01:13
3 34 14:01:13 14:01:13
3 48 14:02:32 14:01:13
Я попытался следующие, но это не тянет отчетливое Col2
значение, а это просто дублируя Col2
df['Col3'] = np.where(df.Col1.isin(df[df.Col2==34].Col1), df['Col2'], 0)
Я понимаю, что назначение df['Col2']
еще 0 из где состояние, скорее всего, моя логическая проблема и что, вероятно, есть несколько простых способов сделать это (или что мое время может быть лучше потрачено на SQL), но я не уверен, как это установить. Заранее спасибо.
Цените это! Работала отлично. – rastrast
На самом деле это работает с тестовым набором данных, но в моем фактическом наборе данных кажется, что у меня есть дублированные значения на основе ошибки: «Повторное обращение только с уникальными ценными объектами индекса». Я предполагаю, что мне придется сначала бросить дубликаты? – rastrast
Это будет работать. Но вы хотите сделать первое наблюдение? – piRSquared