<p>这可能不是最有效的方法,但它可以保持列顺序。您只需将<code>dataframe</code>和<code>series</code>转换回<code>numpy</code>数组来执行<code>minimum</code>操作,将其转换回<code>dataframe</code>。例如:</p>
<pre><code>In [43]: df=pd.DataFrame(np.random.rand(10,5))
In [44]: sr=pd.Series(np.random.rand(5))
In [45]: df
Out[45]:
0 1 2 3 4
0 0.435234 0.197012 0.364953 0.942068 0.657147
1 0.310736 0.721353 0.880256 0.140999 0.757069
2 0.840233 0.957006 0.785870 0.884206 0.625479
3 0.368817 0.386193 0.634408 0.895458 0.433639
4 0.804589 0.509249 0.124370 0.556714 0.895174
5 0.034010 0.519510 0.853540 0.192033 0.234513
6 0.262984 0.270159 0.673854 0.465467 0.906740
7 0.318838 0.518621 0.295384 0.596599 0.612002
8 0.804619 0.616971 0.309750 0.544413 0.013770
9 0.440933 0.857697 0.447541 0.266759 0.002859
In [46]: sr
Out[46]:
0 0.807357
1 0.605892
2 0.328464
3 0.298340
4 0.424584
dtype: float64
In [47]: dfmin = pd.DataFrame(np.minimum(np.array(df),np.array(sr)))
In [48]: dfmin
Out[48]:
0 1 2 3 4
0 0.435234 0.197012 0.328464 0.298340 0.424584
1 0.310736 0.605892 0.328464 0.140999 0.424584
2 0.807357 0.605892 0.328464 0.298340 0.424584
3 0.368817 0.386193 0.328464 0.298340 0.424584
4 0.804589 0.509249 0.124370 0.298340 0.424584
5 0.034010 0.519510 0.328464 0.192033 0.234513
6 0.262984 0.270159 0.328464 0.298340 0.424584
7 0.318838 0.518621 0.295384 0.298340 0.424584
8 0.804619 0.605892 0.309750 0.298340 0.013770
9 0.440933 0.605892 0.328464 0.266759 0.002859
</code></pre>