pandas apply,参数化指定列名(将需要的列先放在list中),并进行操作
在这里写了apply同时处理两列的方法CSDN,apply同时处理两列的值但如果需要汇总很多列的数据时,一个一个写太麻烦了。这里应该结合python不定长函数,完成功能。领会下面这个demo的含义就行了。import numpy as npimport pandas as pddf = pd.DataFrame ({'a' : np.random.randn(5) * 1,'b' : np.ran
·
在这里写了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
更多推荐
已为社区贡献3条内容
所有评论(0)