【发布时间】:2013-12-04 14:32:50
【问题描述】:
我在将 Pandas 中的 2 个不同大小的 DataFrame 与重叠列合并时遇到了一些麻烦。
df1 =
+-------+--------+--------+-------+
| value | method | number | price |
+-------+--------+--------+-------+
| 0.5 | add | 489245 | 600 |
| 0.7 | add | 489245 | NaN |
| 0.7 | mul | 584682 | 225 |
| 0.9 | mul | 624602 | NaN |
| 0.95 | mul | 624602 | NaN |
| 0.99 | mul | 624602 | NaN |
| NaN | NaN | 900000 | 300 |
| NaN | add | 900000 | NaN |
+-------+--------+--------+-------+
df2 =
+--------+-------+-----+-----+
| number | price | loc | get |
+--------+-------+-----+-----+
| 489245 | 200 | aa | up |
| 584682 | NaN | ab | NaN |
| 624602 | NaN | bb | NaN |
| 900000 | NaN | cc | dn |
+--------+-------+-----+-----+
我预期的结果:
+-------+--------+--------+-------+-----+-----+
| value | method | number | price | loc | get |
+-------+--------+--------+-------+-----+-----+
| 0.5 | add | 489245 | 200 | aa | up |
| 0.7 | add | 489245 | 200 | aa | up |
| 0.7 | mul | 584682 | 225 | ab | NaN |
| 0.9 | mul | 624602 | NaN | bb | NaN |
| 0.95 | mul | 624602 | NaN | bb | NaN |
| 0.99 | mul | 624602 | NaN | bb | NaN |
| NaN | NaN | 900000 | 300 | cc | dn |
| NaN | add | 900000 | NaN | cc | dn |
+-------+--------+--------+-------+-----+-----+
例如,要加入的列 = 'number'。如果 df1 和 df2 在重叠列上都有非 NaN 值(如“价格”),则 df2 将更可取。否则,应该写一个非 NaN 的。
【问题讨论】: