小编And*_*res的帖子

按组将函数应用于 Pandas 数据框中的每一行

我构建了一个Pandas由基因名称索引的数据框(下面的示例),其中包含列和整数的样本名称作为单元格值。我想要做的是对由与样本组对应的列列表定义的行值列表运行 ANOVA ( f_oneway(), from scipy.stats)。然后将这些结果存储在一个新的Pandas数据框中,组名作为列,索引的基因相同。

数据帧的一个例子(它是从 my 中的另一个函数返回的):

import pandas as pd
counts = {'sample1' : [0, 1, 5, 0, 10],
        'sample2' : [2, 0, 10, 0, 0],
        'sample3' : [0, 0, 0, 1, 0],
        'sample4' : [10, 0, 1, 4, 0]}
data = pd.DataFrame(counts, columns = ['sample1', 'sample2', 'sample3', 'sample4'],
        index = ['gene1', 'gene2', 'gene3', 'gene4', 'gene5'])
Run Code Online (Sandbox Code Playgroud)

组作为参数导入main(),所以在这个函数中我有:

def compare(out_prefix, pops, data):
    import scipy.stats as stats
    sig = pd.DataFrame(index=data.index)

#groups …
Run Code Online (Sandbox Code Playgroud)

python scipy dataframe anova pandas

7
推荐指数
1
解决办法
719
查看次数

重新排序data.frame中的行?

我只需要交换此表中的每两行...基本上将包含'chao1'的每一行与下一行交换,其中包含'obs'.

我所遇到的所有例子似乎都有一个先前的参考,但我认为,我想要的是有点不同.

     Group.1                  var     S           se    
1    Cliona celata complex    chao1   800.5933    57.51779
2    Cliona celata complex    obs     495.4286    63.07360
3    Cliona viridis           chao1   432.5548    35.87778
4    Cliona viridis           obs     286.0000    55.32179
5    Dysidea fragilis         chao1   694.9129    74.85536
6    Dysidea fragilis         obs     357.6667    64.02170
7    Phorbas fictitius        chao1   851.6950    57.67145
8    Phorbas fictitius        obs     523.2500    23.57905
Run Code Online (Sandbox Code Playgroud)

提前感谢您的帮助!

干杯,

安德烈

r

5
推荐指数
1
解决办法
104
查看次数

Barplot与SError从表

我试图从我生成的表格中绘制分组条形图,如下所示.

Group.1                S.obs     se.obs    S.chao1   se.chao1
Cliona celata complex  499.7143  59.32867  850.6860  65.16366
Cliona viridis         285.5000  51.68736  462.5465  45.57289
Dysidea fragilis       358.6667  61.03096  701.7499  73.82693
Phorbas fictitius      525.9167  24.66763  853.3261  57.73494
Run Code Online (Sandbox Code Playgroud)

到目前为止,我已经尝试了以下但没有取得好成绩:

library(dplyr)
library(tidyr)
library(ggplot2)

data.frame(t(agg_media)) %>%
add_rownames() %>%
gather(group, value, - c(rowname, se.chao1)) -> media_2
gather(group, value, - c(rowname, se.obs)) -> media_3

#take out error bars from S.obs
# mutate(media2, se.chao1 = replace(se.chao1, which(group == "S.obs"),NA)) -> media3

dodge <- position_dodge(width=0.9)

g <- ggplot(data = agg_media, aes(x = rowname, …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 vegan

3
推荐指数
1
解决办法
221
查看次数

标签 统计

r ×2

anova ×1

dataframe ×1

ggplot2 ×1

pandas ×1

python ×1

scipy ×1

vegan ×1