#python #pandas #dataframe
Вопрос:
Я пытаюсь заполнить каждое 2-е значение из столбца df2 фрейма данных в столбец df1 фрейма данных , используя iloc
, однако, в результате я получаю альтернативные нулевые значения. Как получить непрерывные значения без нулевых значений?
Например:
df1 = pd.DataFrame({'col1': [1, 2, 3, 4], 'col2': list('ABCD')})
df2 = pd.DataFrame({'col1': [2, 4, 6, 8, 10, 12, 14, 16]})
df1.col1 = df2.iloc[::2]
Выход:
| col1 | col2 |
| -------- | -------------- |
| 2 | A |
| NULL | B |
| 6 | C |
| NULL | D |
Ожидаемый результат:
| col1 | col2 |
| -------- | -------------- |
| 2 | A |
| 6 | B |
| 8 | C |
| 10 | D |
Ответ №1:
Преобразуйте Series
его в список, и он должен работать для вас, аналогично:
df1.col1 = df2.iloc[::2].tolist()
Выход:
| col1 | col2 |
| -------- | -------------- |
| 2 | A |
| 6 | B |
| 8 | C |
| 10 | D |
Комментарии:
1. Спасибо, это работает !
Ответ №2:
Вы можете сделать:
df2.iloc[::2, :]
Что даст вам:
col1
0 2
2 6
4 10
6 14
Комментарии:
1. Спасибо за ответ. Я попробовал ваш код, он дал мне точно такие же результаты. Оказывается,
.iloc[::2]
и.iloc[::2, :]
являются такими же.