我目前正在尝试根据字典将字典与数据帧的特定列中的对应值匹配的字典映射到数据帧。该dict中的值应该成为数据框中的新列。
地图很简单:
hits_dict = dict(zip(rel_domains.owner, rel_domains.hits)) # Create a dict from separate columns in another df
df['Hits'] = df['eid'].map(hits_dict).fillna('None') # Map the dict
字典和数据框的输出:
df = pd.DataFrame('eid': ['SDF23', 'DFH907', '435SD', 'UP645', 'ZXCV43', '455GG', 'ASDF0', ... ]})
{'SDF23': 2.0, 'DFH907': 86.0, '435SD': nan, 'UP645': 1.0, 'ZXCV43': nan, '455GG': 16.0, 'ASDF0': 1.0, ... }
键/值是owner : hits
的地方。字典键owner
和df的eid
是相同的值,这是我遇到麻烦的时候。当我将字典映射到数据框时,它会执行并且看起来还不错。但是,我从中取出dict的数据帧大约有270 k / v对,但映射后却没有显示。我发现它们可能不在数据框中,除非我从物理上看,我在要映射的df和dict中都看到了匹配的列值和键。