1. 源数据
df = pd.DataFrame(
data=np.random.randint(10, 100, size=(3, 3)),
index=['张三', '李四', '王五'],
columns=['数学', '语文', '英语'],
)
df2 = pd.DataFrame(
data=np.random.randint(10, 100, size=(3, 3)),
index=['张三', '李四', '王五'],
columns=['数学', '语文', '英语'],
)
df3 = pd.DataFrame(
data=np.random.randint(10, 100, size=(4, 4)),
index=['张三', '李四', '王五', '赵六'],
columns=['数学', '语文', '英语', '化学'],
)
2.索引与列一一对应的情况下
2.1 DataFrame和标量之间的运算
df + 100
2.2 DataFrame之间的运算
df + df2
3. 索引与列不对应的情况下
3.1 DataFrame之间的运算
df + df3
3.2 DataFrame之间的运算,为NaN的使用0填充
df.add(df3, fill_value=0)
4. DataFrame与Series之间的运算
4.1 源数据
s1 = pd.Series([100, 10, 1], index=df.columns)
s2 = pd.Series([100, 10, 1], index=df.index)
df
4.2 DataFrame+Series对行进行操作 axis=0 Series.index与DataFrame.index对应
df.add(s2, axis=0)
4.3 DataFrame+Series对行进列操作 axis=1 Series.index与DataFrame.columns对应
df.add(s1, axis=1)