pandas将datafram中某列按照条件赋值方法,求每行最大值、均值、和方法

1、批量修改datafram中某一列

在数据处理过程中,经常会出现对某列批量做某些操作,比如dataframe df要对列名为“values”做大于等于30设置为1,小于30设置为0操作,可以这样使用dataframe的apply函数来实现,具体实现代码如下:

def fun(x):
    if x >= 30:
        return 1
    else:
        return 0

values= feature['values'].apply(lambda x: fun(x))
#若需要将改动赋值给原始的feature的列中的话,可以进行一次赋值
feature['values']=values
#或者直接一次修改后赋值。
feature['values']= feature['values'].apply(lambda x: fun(x))

具体的逻辑可以修改fun函数来实现,但是按照某些条件选择列不是这种实现方法,如有需求,请自己百度。

2、求datafram一行中的最大值、最小值、均值、求和等操作实现

在一些数据处理中,需要求一行中数值型列的最大值,最小值,均值等操作,可以如下实现:

#如果需要对多列操作,比如原始df格式是sid,math,Chinese,PE,表示一个学生的分数,比如求最高分,平均分,总分等操作
#由于一行中sid是学号,我们不需要选择该列求最大值,最小值,故在求最值前筛选出需要求最值的所有列
#原始数据:1,88,89,87
#         2,90,98,94
#         3,89,89,90
feature["max"]=feature[["math","Chinese","PE"]].max(axis=1)
feature["mean"]=feature[["math","Chinese","PE"]].mean(axis=1)
feature["sum"]=feature[["math","Chinese","PE"]].sum(axis=1)

 

你可能感兴趣的:(python,机器学习,pandas,dataframe)