【发布时间】:2015-09-27 02:01:51
【问题描述】:
我有两个列表,一个是用作“关键”的主列表,另一个是由于缺少信息而正在更新的列表。
main_df:
+---------+--------+--------+--------+--------+
| ID | value1 | value2 | value3 | value4 |
+=========+========+========+========+========+
| 9845213 | 1 | 11 | a | aa |
+---------+--------+--------+--------+--------+
| 545167 | 2 | 22 | b | bb |
+---------+--------+--------+--------+--------+
| 132498 | 3 | 33 | c | cc |
+---------+--------+--------+--------+--------+
| 89465 | 4 | 44 | d | dd |
+---------+--------+--------+--------+--------+
| 871564 | 5 | 55 | e | ee |
+---------+--------+--------+--------+--------+
| 646879 | 6 | 66 | f | ff |
+---------+--------+--------+--------+--------+
...
data_df:
+----------+--------+--------+--------+--------+--------+
| ID | value1 | value2 | value3 | value4 | value5 |
+==========+========+========+========+========+========+
| 4968712 | NaN | NaN | a | aa | a1 |
+----------+--------+--------+--------+--------+--------+
| 21347987 | 2 | 22 | b | bb | b2 |
+----------+--------+--------+--------+--------+--------+
| 4168512 | NaN | NaN | c | cc | c3 |
+----------+--------+--------+--------+--------+--------+
| 31468612 | 4 | 44 | d | dd | d4 |
+----------+--------+--------+--------+--------+--------+
| 9543213 | 5 | 55 | e | ee | e5 |
+----------+--------+--------+--------+--------+--------+
| 324798 | NaN | NaN | f | ff | f6 |
+----------+--------+--------+--------+--------+--------+
我要做的是使用main_df 中的value3 和value4,以便仅更新data_df 中的values1 和values2。
Merge, join, and concatenate 都不适合我,因为我需要将这两个文件分开。
我尝试使用Working with missing data 和.replace(),但我不确定如何正确地从main_df 中提取所需的值来替换data_df 中的NaN 值。
【问题讨论】:
-
pd.combine()可能会起作用。顺便说一句,您想以value3和value4作为键进行组合,并更新value1和value2中的数字,对吗?
标签: python python-3.x pandas dataframe