python-3.x - python中列值的条件赋值
问题描述
嗨,我有一个包含 3 列的 excel 表,我将其读入数据框 df:
df 打印正确。
现在我需要在上述 3 列的基础上添加 2 个新列
def setData(FinalCombinedSet):
if(df['age']==np.nan):
df['Final Column']='age column blank'
df['Mumbai category']='NO'
return df
elif(df['name']=='def' and df['place']=='Mumbai'):
df['Final column'] = 'category Mumbai'
df['Mumbai category']='YES'
return df
else:
df['Final Column'] = 'Other values'
df['Mumbai category']='NO'
return df
df=df.apply(lambda df:setData(df),axis=1)
解决方案
用于np.select
矢量化方法:
import pandas as pd
import numpy as np
df = pd.DataFrame({"name":["abc","def","ghi"],
"age":["","20","22"],
"place":["Bangalore","Mumbai","Mumbai"]})
df["final column"] = np.select([df["age"]=="",(df["name"]=="def")&(df["place"]=="Mumbai")],
['age column blank','category Mumbai'],
default="Other values")
df['Mumbai category'] = np.select([df["age"]=="",(df["name"]=="def")&(df["place"]=="Mumbai")],
["NO","YES"],
default="NO")
print (df)
#
name age place final column Mumbai category
0 abc Bangalore age column blank NO
1 def 20 Mumbai category Mumbai YES
2 ghi 22 Mumbai Other values NO
推荐阅读
- android - “E/ViewRootImpl:sendUserActionEvent() mView 返回”,而我尝试在自动完成搜索栏中输入(Google Places API)
- django - 录制用户的声音并将其保存到 Django 中的 db
- python - 简单的 Python 猜谜游戏
- flutter - Flutter如何将csv列表转换为地图?
- jquery - JQuery没有触发焦点
- ibm-midrange - 将 dsply 消息从 rpgle pgm 返回到 cl 变量
- javascript - 如何上传带有帖子内容的内联图像
- javascript - 通过单击在表单中的提交按钮上显示微调器加载程序
- firebase - 从 Firebase 存储下载文件非常慢
- docker - Dockerfile:变量可以在多阶段 FROM 中使用吗?