Python 使用不同的函数作为行创建数据帧

Python 使用不同的函数作为行创建数据帧,python,pandas,function,dataframe,rows,Python,Pandas,Function,Dataframe,Rows,我有这个 df=pd.DataFrame({'A':[42.5,39.5,37.2,40,41,38,38.2,39.7], 'B': [13.3,12.8,12.1,12.3,13.3,12.2,12.4,12.8]}) 我想要一个数据框架,包含列['a']和['B']的描述函数,以及其他列,在本例中,我添加了列['T']和['I'] 下面的列['A']和['B']显示函数df['A'].descripe(),df['B'].descripe()的结果

我有这个

df=pd.DataFrame({'A':[42.5,39.5,37.2,40,41,38,38.2,39.7],
                   'B': [13.3,12.8,12.1,12.3,13.3,12.2,12.4,12.8]})
我想要一个数据框架,包含列['a']和['B']的描述函数,以及其他列,在本例中,我添加了列['T']和['I']

下面的列['A']和['B']显示函数df['A'].descripe(),df['B'].descripe()的结果

以下是期望的结果:

    T   I         A      B
0   F   n       8.00    8.00
1   F   avg     39.51   12.65
2   F   std     1.72    0.47
3   F   min     37.20   12.10
4   F   25%     38.15   12.27
5   F   50%     39.60   12.60
6   F   75%     40.25   19.25
7   F   max     42.50   13.30
我尝试了下面的代码,但没有成功:

df2=pd.DataFrame({
                 'T':['F','F','F','F','F','F','F','F'],
                 'I':['n','avg','std','min','25%','50%','75%','max'],
                 'A':[df['A'].describe()],
                 'B':[df['B'].describe()],
                 })

非常感谢您的帮助。

如果数据帧的顺序
df2
与您可用于所有列的输出函数的顺序相匹配:

df2=pd.DataFrame({
                 'T':['F','F','F','F','F','F','F','F'],
                 'I':['n','avg','std','min','25%','50%','75%','max'],
                 })


df3 = pd.concat([df2, df.describe().reset_index(drop=True)], axis=1)

#if need specify some columns for describe
#df3 = pd.concat([df2, df[['A','B']].describe().reset_index(drop=True)], axis=1)
print (df3)
   T    I          A          B
0  F    n   8.000000   8.000000
1  F  avg  39.512500  12.650000
2  F  std   1.722488   0.475094
3  F  min  37.200000  12.100000
4  F  25%  38.150000  12.275000
5  F  50%  39.600000  12.600000
6  F  75%  40.250000  12.925000
7  F  max  42.500000  13.300000
或者,您可以使用
重命名
获取必要的索引值,然后通过
T
添加列,方法是:

df3 = df.describe().rename_axis('I').rename({'count':'n','mean':'avg'}).reset_index()
df3.insert(0, 'T', 'F')
print (df3)
   T    I          A          B
0  F    n   8.000000   8.000000
1  F  avg  39.512500  12.650000
2  F  std   1.722488   0.475094
3  F  min  37.200000  12.100000
4  F  25%  38.150000  12.275000
5  F  50%  39.600000  12.600000
6  F  75%  40.250000  12.925000
7  F  max  42.500000  13.300000