【发布时间】:2019-10-20 18:18:48
【问题描述】:
我有一个适用于 Python 3.7x 的 Pandas 0.24.2 数据框,如下所示。我想drop_duplicates() 基于条件逻辑具有相同的名称。可以在这里找到类似的问题:Pandas - Conditional drop duplicates 但在我的情况下它变得更加复杂
import pandas as pd
import numpy as np
df = pd.DataFrame({
'Id': [1, 2, 3, 4, 5, 6 ],
'Name': ['A', 'B', 'C', 'A', 'B', 'C' ],
'Value1':[1, np.NaN, 0, np.NaN, 1, np.NaN],
'Value2':[np.NaN, 0, np.NaN, 1, np.NaN, 0 ],
'Value3':[np.NaN, 0, np.NaN, 1, np.NaN, np.NaN]
})
怎么可能:
删除相同“名称”记录的重复项,保留 NaN 较少的记录?
如果它们具有相同数量的 NaN,是否将没有 NaN 的 NaN 保留在“Value1”中?
期望的输出是:
Id Name Value1 Value2 Value3
2 2 B NaN 0 0
3 3 C 0 NaN NaN
4 4 A NaN 1 1
【问题讨论】:
标签: python-3.x pandas duplicates