pandas对列及行数据,进行运算,并添加到末尾

一,计算各列数据总和并作为新列添加到末尾。

df['Col_sum'] = df.apply(lambda x: x.sum(), axis=1)

或:

#定义获取各科成绩最大值的函数
def getMax(row):
       return max(row["Chinese"],row["Math"],row["English"],row["PE"])

df["max"]=df.apply(lambda row:getMax(row),axis=1)

二,计算各行数据总和并作为新行添加到末尾

df.loc['Row_sum'] = df.apply(lambda x: x.sum())

注:也可以用其他的聚合函数。

原文:https://www.cnblogs.com/wuzhiblog/p/python_new_row_or_col.html

三;pandas 使用apply同时处理两列数据

df = pd.DataFrame ({'a' : np.random.randn(6),
         'b' : ['foo', 'bar'] * 3,
         'c' : np.random.randn(6)})

def my_test(a, b):
     return a + b

df['Value'] = df.apply(lambda row: my_test(row['a'], row['c']), axis=1)
print df

原文:https://blog.csdn.net/leokingszx/article/details/78266559

四:分组运算
可以结合groupby与transform来方便地实现类似SQL中的聚合运算的操作:

聚合函数
结合groupby与agg实现SQL中的分组聚合运算操作,需要使用相应的聚合函数:

详见:https://blog.csdn.net/zwhooo/article/details/79696558

五,Pandas 操作多个列进行运算,并生成新列的方法

 df.eval('new1 = 气温 + 湿度 + PM2P5' , inplace=True)
 inplace参数: 是否在原数据上操作。

inplace=False 将会生成新的DataFrame

在这里插入图片描述
一次新增多个列可以使用

df.eval("""
.....: e = 气温 + 湿度
.....: f = 气温 - 湿度
.....: g = 气温 / 2.0""", inplace=True)

在这里插入图片描述
六,查询函数 query。
在这里插入图片描述
也可以使用inpalce参数。

详见:https://blog.csdn.net/weixin_42493346/article/details/80744159


版权声明:本文为weixin_43668299原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。