Предположим, у меня есть следующие списки:
cond_1 = [1,2]
cond_2 = [3,5]
А также следующий фрейм данных df
:
|----------|
| Column_1 |
|----------|
| x |
|----------|
| y |
|----------|
| y |
|----------|
| x |
|----------|
Что я хочу сделать, это добавить второй столбец Column_2
. Следуя этим критериям:
1) если Column_1
содержит x
, добавьте значение в Column_2
из cond_1
;
2), если Column_1
содержит y
, добавьте значение в Column_2
из cond_2
Нужный вывод должен быть таким:
|----------|----------|
| Column_1 | Column_2 |
|----------|----------|
| x | 1 |
|----------|----------|
| y | 3 |
|----------|----------|
| y | 5 |
|----------|----------|
| x | 2 |
|----------|----------|
Я пытался сделать это, используя pd.Series
:
df_x = df.loc[df['Column_1'] == "x"] #first I create a dataframe only with the x values
df_x['Column_2'] = pd.Series(cond_1)
Тогда я бы повторил то же самое для значений y
, получив df_y
.
Однако это не удалось. Затем мне нужно снова добавить два кадра данных (df_x
и df_y
), и я потеряю информацию об исходном индексе, который я хочу сохранить с df
.