取代大Pandas的NaN值

2024-09-30 22:20:14 发布

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

我有一个数据帧。它的两个栏目是“药品编号”和“假药重量”。在

“药品编号”的每一个值在“伪药重量”栏中有一个NaN或固定值。如何将这个NaN值替换为“Medicine_ID”的特定值的相应固定值?在

我的数据片段:

enter image description here

火车_数据.loc[train_data['Medicine_ID']=='IXN93']\

enter image description here


Tags: 数据iddatatrainnanloc编号重量
2条回答

如果我的理解是正确的,您可以使用mode


数据输入

df=pd.DataFrame({'Medicine_ID':["A","B","C","D"],'Counterfeit_Weight':[999,2,np.nan,np.nan]})
df1=pd.DataFrame({'Medicine_ID':["A","A","B","B","C","C","C","D","D","D"],'Counterfeit_Weight':[2,np.nan,2,np.nan,2,2,np.nan,1,1,2]})

解决方案

^{pr2}$

为了将NaN替换为每组最常见的值,Medicine_ID可以使用^{}与{a2}和{a3}一起使用^{}之后的第一个值{}:

df = pd.DataFrame({'A':list('abcdefabcdef'),
                   'Counterfeit_Weight':[np.nan,5.0,5.0,np.nan,2.0,4.1,3.0,
                                         np.nan,6.1,np.nan,4.1,4.1],
                   'Medicine_ID':list('caabbbaaabbb')})

print (df)
    A  Counterfeit_Weight Medicine_ID
0   a                 NaN           c
1   b                 5.0           a
2   c                 5.0           a
3   d                 NaN           b
4   e                 2.0           b
5   f                 4.1           b
6   a                 3.0           a
7   b                 NaN           a
8   c                 6.1           a
9   d                 NaN           b
10  e                 4.1           b
11  f                 4.1           b

^{pr2}$

相关问题 更多 >