簡體   English   中英

如何在Pandas DataFrame中將字典作為最后一行插入

[英]How to insert dictionaries as last rows in Pandas 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

我該如何實現?

您可以使用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

使用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
a=df.append(pd.DataFrame(mydict,index=[0]))
a=a.T
a=a.rename(columns={0:'SRT'})
a=a.T

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM