在这里写了apply同时处理两列的方法​​​​​​​。

pandas 使用apply同时处理两列数据_码破苍穹的博客-CSDN博客_pandas同时匹配两列数据

但如果需要汇总很多列的数据时,一个一个写太麻烦了。

这里应该结合python不定长函数,完成功能。

领会下面这个demo的含义就行了。

import numpy as np
import pandas as pd

df = pd.DataFrame ({
             'a' : np.random.randn(5) * 1,
             'b' : np.random.randn(5) * 2,
             'c' : np.random.randn(5) * 3,
             'd' : np.random.randn(5) * 4,
             'e' : np.random.randn(5) * 5})
 
#函数功能:对input_data里的值进行累加。
def func(*input_data):
    res = 0
    input_data = input_data[0]  #由tuple得到里面的值。为什么有tuple,这个和不定长参数的特性有关。自行查阅。
#     print(input_data)
    for col in input_data:
        res = res + col
    return res

sel_cols = ['a','b','c','d','e']
df['col_sum'] = df.apply(lambda row: func(row[col] for col in sel_cols), axis=1)
print (df)


#输出结果形如:
#           a         b         c         d          e    col_sum
# 0 -1.171737 -0.029397  3.147616 -7.460722  -8.236291 -13.750531
# 1 -1.630861 -0.923113 -3.460582 -1.119572  13.575217   6.441089
# 2  0.165564  0.072814  1.175009 -2.657293   6.768176   5.524270
# 3  0.820726  3.341628  1.384302  6.173275   0.630153  12.350083
# 4 -2.145067 -0.067781  0.640393 -3.291971   7.131692   2.267266
 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐