只映射datafram中第一次出现的键/值匹配

2024-04-24 03:26:29 发布

您现在位置:Python中文网/ 问答频道 /正文

是否可以只映射数据帧中第一次出现的键?你知道吗

例如:

testDict={A:1,B:2}

测向

Name   Num
 A
 A
 B
 B

预期产量

Name   Num
 A      1
 A      
 B      2
 B 

Tags: 数据namenum产量testdict
3条回答

使用duplicated查找第一个匹配项,然后使用map

df['Num'] = df.Name[df.Name.duplicated(keep='last')].map(testDict)
print(df)

输出

  Name  Num
0    A  1.0
1    A  NaN
2    B  2.0
3    B  NaN

若要删除NaN值,请执行以下操作:

df = df.fillna('')

您可以使用duplicatedmap

df['Num'] = np.where(~df['Name'].duplicated(), df['Name'].map(testDict), '')

输出:

  Name Num
0    A   1
1    A    
2    B   2
3    B    

mapdrop_duplicates,假设您有唯一的对齐索引。(可能最好保留NaN,以便列保持数字)

df['Num'] = df['Name'].drop_duplicates().map(testDict)

  Name  Num
0    A  1.0
1    A  NaN
2    B  2.0
3    B  NaN

相关问题 更多 >