python - Pandas 将唯一随机数应用于 nan 否则转到下一行
问题描述
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))
解决方案
第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
,您将获得预期的输出
推荐阅读
- python - Django form doesn't appear on template
- php - WooCommerce login not working for some users with no errors
- c++ - 具有其他类对象向量的类
- swift - 助理编辑器新的xcode
- sapui5 - 如何设置文本字段的可见错误
- android - 为什么我无法在 Android Q 上打开下载的文件
- java - 映射一个列表并映射成一个映射
- html - flex:1 在 safari 浏览器上仅采用 100vh 高度而不是完整内容高度
- arrays - Xcode/swift 1 或 0 是否已编入索引?
- visual-studio-code - VS Code 终端和 pipenv 中的“退出”命令