Pandas将唯一随机数应用于nan,否则转到下一行

2024-04-26 12:17:48 发布

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

import pd as pandas
import random
import numpy as np 

data = {'Item_No':['001', '002', '003','004', '005', '006','007','008','009'], 
        'Group_code':[331, 332, 333, 333, 333, 331, 331, nan, nan]} 
df = pd.DataFrame(data)

我想对“nan”应用一个唯一的随机数,并将组码保留在组码存在的位置。 我试过以下方法,但我似乎无法正确理解语法,我做错了什么

df['Group_Code'] = df['Group_Code'].apply(lambda v: (random.random() * 1000) if pd.isnull(v['Group_Code'] else v['Group_Code'], axis = 1))

1条回答
网友
1楼 · 发布于 2024-04-26 12:17:48

第0步:-

您的数据帧:-

data = {'Item_No':['001', '002', '003','004', '005', '006','007','008','009'], 
        'Group_code':[331, 332, 333, 333, 333, 331, 331, np.nan, np.nan]} 
df = pd.DataFrame(data)

第1步:-

首先定义一个函数:-

def func(val):
    if pd.isnull(val):
        return random.random() * 1000
    else:
        return val

第2步:-

然后只需使用apply()方法:-

df['Group_code']=df['Group_code'].apply(func).astype(int)

现在,如果您打印df,您将获得预期的输出

相关问题 更多 >