Pandas(第十二集:DataFrame运算)

目录

    • 1. 源数据
    • 2.索引与列一一对应的情况下
      • 2.1 DataFrame和标量之间的运算
      • 2.2 DataFrame之间的运算
    • 3. 索引与列不对应的情况下
      • 3.1 DataFrame之间的运算
      • 3.2 DataFrame之间的运算,为NaN的使用0填充
    • 4. DataFrame与Series之间的运算
      • 4.1 源数据
      • 4.2 DataFrame+Series对行进行操作 axis=0 Series.index与DataFrame.index对应
      • 4.3 DataFrame+Series对行进列操作 axis=1 Series.index与DataFrame.columns对应


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=['数学', '语文', '英语', '化学'],
)

Pandas(第十二集:DataFrame运算)_第1张图片

2.索引与列一一对应的情况下

2.1 DataFrame和标量之间的运算

df + 100

Pandas(第十二集:DataFrame运算)_第2张图片

2.2 DataFrame之间的运算

df + df2

Pandas(第十二集:DataFrame运算)_第3张图片

3. 索引与列不对应的情况下

3.1 DataFrame之间的运算

df + df3

Pandas(第十二集:DataFrame运算)_第4张图片

3.2 DataFrame之间的运算,为NaN的使用0填充

df.add(df3, fill_value=0)

Pandas(第十二集:DataFrame运算)_第5张图片

4. DataFrame与Series之间的运算

4.1 源数据

s1 = pd.Series([100, 10, 1], index=df.columns)
s2 = pd.Series([100, 10, 1], index=df.index)
df

Pandas(第十二集:DataFrame运算)_第6张图片

4.2 DataFrame+Series对行进行操作 axis=0 Series.index与DataFrame.index对应

df.add(s2, axis=0)

Pandas(第十二集:DataFrame运算)_第7张图片

4.3 DataFrame+Series对行进列操作 axis=1 Series.index与DataFrame.columns对应

df.add(s1, axis=1)

Pandas(第十二集:DataFrame运算)_第8张图片

你可能感兴趣的:(Pandas,pandas,python,数据分析)