import pandas as pd
import numpy as np
广播机制
DataFrame 对象之间的数据对齐在列和索引(行标签)上自动对齐。同样,结果对象将得到列和行标签的并集。
df1 = pd.DataFrame(np.random.randn(10, 4), columns=["A", "B", "C", "D"])
df1
| A | B | C | D |
---|
0 | -0.205518 | -1.079244 | 0.466754 | 0.697197 |
---|
1 | 0.373488 | -0.704131 | -0.562608 | -0.747020 |
---|
2 | 0.727782 | 1.176981 | 1.748998 | -2.381428 |
---|
3 | 0.693188 | -0.236861 | -0.045300 | 1.116772 |
---|
4 | 0.679781 | -0.113023 | -0.237897 | 0.991700 |
---|
5 | 0.301815 | -0.736582 | -0.327876 | 1.240366 |
---|
6 | -0.362792 | 0.409796 | -0.559092 | 1.486711 |
---|
7 | 1.158763 | 2.898433 | -1.066979 | 1.109399 |
---|
8 | 1.801811 | -0.150998 | 0.256121 | 0.626933 |
---|
9 | 0.248901 | -0.846965 | 0.728085 | -0.302709 |
---|
df2 = pd.DataFrame(np.random.randn(7, 3), columns=["A", "B", "C"])
df2
| A | B | C |
---|
0 | 0.656296 | 0.948401 | 1.203846 |
---|
1 | 0.576805 | 2.193866 | -1.295344 |
---|
2 | 0.107251 | -1.394675 | 1.322735 |
---|
3 | 0.278274 | -0.398505 | -0.894721 |
---|
4 | 0.798450 | -0.817746 | 1.933429 |
---|
5 | -0.856174 | 0.212137 | -0.323455 |
---|
6 | -0.148207 | 2.293063 | 0.164304 |
---|
| A | B | C | D |
---|
0 | 0.450778 | -0.130843 | 1.670600 | NaN |
---|
1 | 0.950293 | 1.489735 | -1.857952 | NaN |
---|
2 | 0.835033 | -0.217694 | 3.071733 | NaN |
---|
3 | 0.971461 | -0.635366 | -0.940020 | NaN |
---|
4 | 1.478231 | -0.930769 | 1.695532 | NaN |
---|
5 | -0.554358 | -0.524445 | -0.651331 | NaN |
---|
6 | -0.510998 | 2.702860 | -0.394789 | NaN |
---|
7 | NaN | NaN | NaN | NaN |
---|
8 | NaN | NaN | NaN | NaN |
---|
9 | NaN | NaN | NaN | NaN |
---|
在 DataFrame 和 Series 之间执行操作时,默认行为是对齐 DataFrame 列上的 Series 索引,从而按行广播。例如:
| A | B | C | D |
---|
0 | 0.000000 | 0.000000 | 0.000000 | 0.000000 |
---|
1 | 0.579007 | 0.375113 | -1.029362 | -1.444217 |
---|
2 | 0.933301 | 2.256226 | 1.282244 | -3.078625 |
---|
3 | 0.898706 | 0.842383 | -0.512054 | 0.419576 |
---|
4 | 0.885300 | 0.966221 | -0.704651 | 0.294503 |
---|
5 | 0.507334 | 0.342662 | -0.794630 | 0.543169 |
---|
6 | -0.157273 | 1.489041 | -1.025846 | 0.789514 |
---|
7 | 1.364281 | 3.977677 | -1.533733 | 0.412202 |
---|
8 | 2.007330 | 0.928246 | -0.210632 | -0.070263 |
---|
9 | 0.454420 | 0.232279 | 0.261331 | -0.999906 |
---|