索引与 DataFrames 对象的对齐方式

已完成

DataFrames 执行操作时,这两种维度(列和索引)上出现的对齐方式的类型相同。

df1 = pd.DataFrame(rng.randint(0, 20, (2, 2)),
                   columns=list('AB'))
df1

输出为:

|    | A  | B  |
----------------
| 0  | 1  | 11 |
| 1  | 5  | 1  |

另一个示例:

df2 = pd.DataFrame(rng.randint(0, 10, (3, 3)),
                   columns=list('BAC'))
df2

输出为:

|    | B  | A  | C  |
---------------------
| 0  | 4  | 0  | 9  |
| 1  | 5  | 8  | 0  |
| 2  | 9  | 2  | 6  |

亲自试一试

添加 df1 和 df2。 输出的结果和你的预测的一样吗?


提示 (展开以显示)
df1 + df2
|    | A  | B  | C  |
---------------------
| 0  | 1.0  | 15.0 | NaN |
| 1  | 13.0 | 6.0  | NaN |
| 2  | NaN  | NaN  | NaN |




即使 df2 中传递列的顺序与 df1 中的不同,索引也会在生成的列并集中正确排序对齐。

对于 DataFrames 的缺失值,还可使用填充值。 在本例中,让我们用 df1 中所有值的平均值来填充缺失值,平均值通过先堆叠 df1 的行计算得出:

fill = df1.stack().mean()
df1.add(df2, fill_value=fill)

输出为:

|    |  A   |  B   |  C   |
---------------------------
| 0  | 1.0  | 15.0 | 13.5 |
| 1  | 13.0 | 6.0  | 4.5  |
| 2  | 6.5  | 13.5 | 10.5 |

此表列出了 Python 运算符及其等效的 Pandas 对象方法:

Python 运算符 Pandas 方法
+ add()
- sub(), subtract()
* mul(), multiply()
/ truediv()、div()、divide()
// floordiv()
% mod()
** pow()