如何为每一行单独运行函数(python)?



我有以下功能:

def match_function(df):
columns = df.columns.tolist()
matches = {}
for column in columns:
df = df.astype(str)
df_new = df.dropna()
df_new = df[column].str.split(',', expand=True)
df_new = df_new.apply(lambda s: s.value_counts(), axis=1).fillna(0)
match = df_new.iloc[:, 0][0] / df_new.sum(axis=1) * 100
match = round(match, 2)
df[column] = match
matches[column] = match
return matches

我想让这个函数运行完全dataframe分别为每一行。它将循环遍历数据帧的第一行,然后停止并再次运行第二行,等等。

因为它是以一种如此复杂和不专业的方式编写的(因为我是Python新手),所以当我传递一个数据框并且它同时运行整个数据框时,结果是错误的。或者改变函数本身,让它逐行

考虑以下df:

a         b
0  1.000000  0.000000
1 -2.000000  1.000000
2  1.000000  0.000000
3  3.000000 -4.000000

和下面的函数,命名为"func".

def func(x):    
return x['a'] + x['b'] 

你可以按行应用这个函数:

df.apply(func, axis=1)

比收益率:

0    1.000000
1   -1.000000
2    1.000000
3   -1.000000

基本上,对于每一行,我们应用命名函数func(),也就是x['a']+x['b']

相关内容

  • 没有找到相关文章

最新更新