在新表熊猫数据框中合并均值和标准差

时间:2021-02-01 16:21:50

标签: python pandas dataframe

我有一个数据框,我正在尝试创建一个新表合并均值、标准差并在 (±) 之间添加一个符号,输出应如下所示:

TR   A           B           C             D    
1    54±35       68.6±18.4   795.8±269     49.8±36.2  
2    61.4±36.4   67.8±14.4   524.8±363.6   52.8±41.2  
3    54±31.9     73.6±22.8   556.6±164.9   46.6±35.1  
4    35.6±22.6   69.2±16.2   207.2±258.4   46.4±24.2  
5    44.4±43.1   85±12.6     639.8±234.5   73.8±26.6

代码:

import numpy as np
import pandas as pd

np.random.seed(100)

df = pd.DataFrame({'TR':np.arange(1, 6).repeat(5), 'A': np.random.randint(1, 100,25),
                   'B':  np.random.randint(50, 100,25), 'C':  np.random.randint(50, 1000,25),
                   'D':  np.random.randint(5, 100,25) })
table = df.groupby('TR').mean().round(decimals=1)

sd = df.groupby('TR').std().round(decimals=1)
#sd = sd.values.tolist()
#sd = list(itertools.chain(*sd))

for i in table.columns:
    table[i] = table[i].astype(str) + u"\u00B1" + sd 
print(table)

但它不起作用

1 个答案:

答案 0 :(得分:0)

试试这个:

>>> table.astype(str) + u"\u00B1" + sd.astype(str)
            A          B            C          D
TR                                              
1   54.0±35.0  68.6±18.4  795.8±269.0  49.8±36.2
2   61.4±36.4  67.8±14.4  524.8±363.6  52.8±41.2
3   54.0±31.9  73.6±22.8  556.6±164.9  46.6±35.1
4   35.6±22.6  69.2±16.2  207.2±258.4  46.4±24.2
5   44.4±43.1  85.0±12.6  639.8±234.5  73.8±26.6