将函数应用于 pandas 数据框的某些列组
Apply function to certain groups of columns of a pandas dataframe
我有一个 pandas 数据框,如下所示:
col1 col2 col3 col4
1 10 10 20 25
2 15 20 10 20
3 20 10 15 10
我想使用 scipy 统计包计算 p 值。具体来说,我想获得一个 p 值,比较每行的前两列和最后两列。我曾尝试使用 scipy 统计数据包,但认为我在索引数据帧时遇到了问题。
我认为代码可能看起来像这样(假设数据):
from scipy import stats
stats.wilcoxon(df[col1:col2], df[col3:col4])
然后我想将 pvalue 附加回数据框。
最终输出类似于:
col1 col2 col3 col4 p_value
1 10 10 20 25 0.05
2 15 20 10 20 0.10
3 20 10 15 10 0.02
这两个比较是 col1/col2 与 col3/col4 的值。
如有任何帮助,我们将不胜感激!
所以我们可以逐行进行
df['p_v'] = df.apply(lambda x : stats.wilcoxon(x['col1':'col2'], x['col3':'col4'])[1],axis=1)
我有一个 pandas 数据框,如下所示:
col1 col2 col3 col4
1 10 10 20 25
2 15 20 10 20
3 20 10 15 10
我想使用 scipy 统计包计算 p 值。具体来说,我想获得一个 p 值,比较每行的前两列和最后两列。我曾尝试使用 scipy 统计数据包,但认为我在索引数据帧时遇到了问题。
我认为代码可能看起来像这样(假设数据):
from scipy import stats
stats.wilcoxon(df[col1:col2], df[col3:col4])
然后我想将 pvalue 附加回数据框。
最终输出类似于:
col1 col2 col3 col4 p_value
1 10 10 20 25 0.05
2 15 20 10 20 0.10
3 20 10 15 10 0.02
这两个比较是 col1/col2 与 col3/col4 的值。
如有任何帮助,我们将不胜感激!
所以我们可以逐行进行
df['p_v'] = df.apply(lambda x : stats.wilcoxon(x['col1':'col2'], x['col3':'col4'])[1],axis=1)