Цель и мотивация
Я видел такой вопрос несколько раз и видел много других вопросов, которые включают в себя некоторый элемент этого. Совсем недавно мне пришлось потратить немного времени на объяснение этой концепции в комментариях в поисках подходящих канонических вопросов и ответов. Я не нашел один, и поэтому я думал, что напишу один.
Этот вопрос обычно возникает в отношении конкретной операции, но в равной степени относится к большинству арифметических операций.
- Как вычесть
Series
из каждого столбца вDataFrame
? - Как добавить
Series
из каждого столбца вDataFrame
? - Как мне умножить
Series
из каждого столбца вDataFrame
? - Как разделить
Series
из каждого столбца вDataFrame
?
Вопрос
Дан Series
s
и DataFrame
df
. Как мне работать с каждым столбцом df
с помощью s
?
df = pd.DataFrame(
[[1, 2, 3], [4, 5, 6]],
index=[0, 1],
columns=['a', 'b', 'c']
)
s = pd.Series([3, 14], index=[0, 1])
Когда я пытаюсь добавить их, я получаю все np.nan
df + s
a b c 0 1
0 NaN NaN NaN NaN NaN
1 NaN NaN NaN NaN NaN
То, что я думал, я должен получить,
a b c
0 4 5 6
1 18 19 20