python按某一列或多列的值进行条件判断并形成新列

您所在的位置:网站首页 列数字的判断标志 python按某一列或多列的值进行条件判断并形成新列

python按某一列或多列的值进行条件判断并形成新列

2024-07-14 02:46| 来源: 网络整理| 查看: 265

需求

从excel读取数据用DataFrame存储,

1. 逐行处理,当指定多列的值满足一定条件时,取这几列的某个值作为该行的新列值.

2. 将日期划分为上、中、下旬并作为新列

知识点

1. np.where是好理解好用的函数,可以当if else的用,当某列满足一个条件时取某列的值,否则取其他列的值。像excel里的if函数,可以嵌套使用。参考python条件赋值,numpy.where() 用法详解

2.直接用df[条件语句][列名]也可以选出符合条件的列值,如:

df['新列名']=df[(df['列A']=30) | (data[col_whole]>=50) , 'rs_flag' ] = 1 #rs_value取同一行这几列的最大值 #这个又犯了将不同条件放在一起比较的错误,大于30的和大于50的条件不同,可能取出的最大值并不一定大于50 data.loc[ (data[col_night]>=30) | (data[col_day]>=30) | (data[col_whole]>=50) , 'rs_value']=data[[col_night,col_day,col_whole]].max(axis=1) data['rs_value']=np.where(data[col_whole]>=50, data[col_whole], np.where((data[col_night]>=30) | (data[col_day]>=30),data[[col_night,col_day]].max(axis=1),0))

2.根据日dd字段生成旬字段dd_xun,类似于SQL的case when;if else嵌套使用; 用df.apply函数,用lambda函数,注意语法

#增加dd_xun字段 data['dd_xun'] = data['dd'].apply(lambda x: '上旬' if x


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3