如何将字典插入到Pandas DataFrame中作为最后一行

5

I have the following dataframe:

import pandas as pd
df = pd.DataFrame({'id':['a','b','c','d','e'],
                   'Sample1':[-14,-90,-90,-96,-91],
                   'Sample2':[-103,0,-110,-114,-114],
                   'Sample3':[1,2.3,3,5,6],
})

df.set_index('id', inplace=True)
df

看起来像这样:
    Sample1  Sample2  Sample3
id
a       -14     -103      1.0
b       -90        0      2.3
c       -90     -110      3.0
d       -96     -114      5.0
e       -91     -114      6.0

我想插入以下字典

mydict = {
    "Sample1": 0.023210000000000001,
    "Sample3": 0.039690000000000003,
    "Sample2": 0.05824
}

  mydict2 = {
        "Sample1": 0.7,
        "Sample3": 0.3,
        "Sample2": 0.8
    }

作为具有索引(行)名称 SRT 和 SRT2 的最后一列。输出为:
    Sample1  Sample2  Sample3
id
a       -14     -103      1.0
b       -90        0      2.3
c       -90     -110      3.0
d       -96     -114      5.0
e       -91     -114      6.0
SRT     0.23    0.39      0.05
SRT2    0.7      0.3      0.8

我该如何实现这个目标?
3个回答

7
您可以使用 loc 方法:
df.loc['SRT'] = pd.Series(mydict)
df.loc['SRT2'] = pd.Series(mydict2)

print (df)
       Sample1    Sample2  Sample3
id                                
a    -14.00000 -103.00000  1.00000
b    -90.00000    0.00000  2.30000
c    -90.00000 -110.00000  3.00000
d    -96.00000 -114.00000  5.00000
e    -91.00000 -114.00000  6.00000
SRT    0.02321    0.05824  0.03969
SRT2   0.70000    0.80000  0.30000

使用concat的解决方案:
df1 = pd.DataFrame([mydict, mydict2], index=['SRT','SRT2'])
print (df1)
      Sample1  Sample2  Sample3
SRT   0.02321  0.05824  0.03969
SRT2  0.70000  0.80000  0.30000

print (pd.concat([df,df1]))
       Sample1    Sample2  Sample3
a    -14.00000 -103.00000  1.00000
b    -90.00000    0.00000  2.30000
c    -90.00000 -110.00000  3.00000
d    -96.00000 -114.00000  5.00000
e    -91.00000 -114.00000  6.00000
SRT    0.02321    0.05824  0.03969
SRT2   0.70000    0.80000  0.30000

3

使用 append 方法

df.append(pd.Series(mydict, name='SRT'))

      Sample1    Sample2  Sample3
id                               
a   -14.00000 -103.00000  1.00000
b   -90.00000    0.00000  2.30000
c   -90.00000 -110.00000  3.00000
d   -96.00000 -114.00000  5.00000
e   -91.00000 -114.00000  6.00000
SRT   0.02321    0.05824  0.03969

df.append(pd.DataFrame.from_records([mydict, mydict2], ['SRT', 'SRT1']))

       Sample1    Sample2  Sample3
a    -14.00000 -103.00000  1.00000
b    -90.00000    0.00000  2.30000
c    -90.00000 -110.00000  3.00000
d    -96.00000 -114.00000  5.00000
e    -91.00000 -114.00000  6.00000
SRT    0.02321    0.05824  0.03969
SRT1   0.70000    0.80000  0.30000

-1
a=df.append(pd.DataFrame(mydict,index=[0]))
a=a.T
a=a.rename(columns={0:'SRT'})
a=a.T

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接