【发布时间】:2020-11-03 00:16:38
【问题描述】:
我有一个类似于以下的 DataFrame,其中我有一列具有非唯一值(在本例中为地址)以及包含有关它的信息的其他一些列。
df = pd.DataFrame({'address': {0:'11 Star Street', 1:'22 Milky Way', 2:'88 Dark Drive', 3:'33 Planet Place', 4:'22 Milky Way', 5:'22 Milky Way'}, 'val': {0:10, 1:'', 2:'', 3:20, 4: 20, 5:''}, 'val2': {0:20, 1:'', 2:'', 3:40, 4:10, 5:''}})
address val val2
0 11 Star Street 10 20
1 22 Milky Way
2 88 Dark Drive
3 33 Planet Place 20 40
4 22 Milky Way 20 10
5 22 Milky Way
有些地址在 DataFrame 中出现了不止一次,而其中一些重复的地址缺少信息。如果某行缺少值,但该地址出现在 DataFrame 的另一行中,我想将 NaN 值替换为来自同一地址的值以获得如下结果:
address val val2
0 11 Star Street 10 20
1 22 Milky Way 20 10
2 88 Dark Drive
3 33 Planet Place 20 40
4 22 Milky Way 20 10
5 22 Milky Way 20 10
使用字典之类的东西是不可行的,因为 DataFrame 包含数千个不同的地址。
编辑:可以安全地假设两个值都丢失或两者都存在。换句话说,永远不会有只有 val 而不是 val2 的行,反之亦然。但是,可以将这种可能的情况考虑在内的答案会更好!
【问题讨论】:
标签: python pandas numpy dataframe