给pandas数据帧添加方法

2024-04-29 05:52:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我想将数据框中的值的平均值添加到数据框中,这样我就可以将它们写入单个excel文件。你知道吗

我有以下数据框:

df = pd.DataFrame({'a': {('0hr', '0.01um', 0): 12,
        ('0hr', '0.01um', 1): 10,
        ('0hr', '0.1um', 0): 8,
        ('0hr', '0.1um', 1): 6,
        ('0hr', 'Control', 0): 4,
        ('0hr', 'Control', 1): 2,
        ('24hr', '0.01um', 0): 18,
        ('24hr', '0.01um', 1): 15,
        ('24hr', '0.1um', 0): 12,
        ('24hr', '0.1um', 1): 9,
        ('24hr', 'Control', 0): 6,
        ('24hr', 'Control', 1): 3},
       'b': {('0hr', '0.01um', 0): 42,
        ('0hr', '0.01um', 1): 35,
        ('0hr', '0.1um', 0): 28,
        ('0hr', '0.1um', 1): 21,
        ('0hr', 'Control', 0): 14,
        ('0hr', 'Control', 1): 7,
        ('24hr', '0.01um', 0): 30,
        ('24hr', '0.01um', 1): 25,
        ('24hr', '0.1um', 0): 20,
        ('24hr', '0.1um', 1): 15,
        ('24hr', 'Control', 0): 10,
        ('24hr', 'Control', 1): 5}})

我可以通过执行以下操作来计算每个更高级别索引的0和1的平均值:

df = df.reorder_levels([2,1,0]).unstack().unstack()
dfMean = df.mean()

print(df)

           a                                         b                             
     0hr                 24hr                  0hr                 24hr         
  0.01um 0.1um Control 0.01um 0.1um Control 0.01um 0.1um Control 0.01um 0.1um Control
0     12     8       4     18    12       6     42    28      14     30    20      10 
1     10     6       2     15     9       3     35    21       7     25    15       5  

print(dfMean)

a  0hr   0.01um     11.0
         0.1um       7.0
         Control     3.0
   24hr  0.01um     16.5
         0.1um      10.5
         Control     4.5
b  0hr   0.01um     38.5
         0.1um      24.5
         Control    10.5
  24hr   0.01um     27.5
         0.1um      17.5
         Control     7.5

我想把dfMean放在df数据框里,这样我就可以把所有的日期都写到一张excel表格里。。。实现这一目标的最佳方法是什么?可能是这样的数据帧?你知道吗

       a                                         b                             
     0hr                 24hr                  0hr                 24hr         
  0.01um 0.1um Control 0.01um 0.1um Control 0.01um 0.1um Control 0.01um 0.1um Control
0     12     8       4     18    12       6     42    28      14     30    20      10 
1     10     6       2     15     9       3     35    21       7     25    15       5  
mean  11.0   7.0     3.0   16.5   10.5    4.5   38.5  24.5    10.5   27.5  17.5     7.5

这有可能吗?你知道吗


Tags: 文件数据dataframedfmeanexcelreordercontrol