首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Pandas DataFrame中插入字典作为最后一行

如何在Pandas DataFrame中插入字典作为最后一行
EN

Stack Overflow用户
提问于 2017-01-06 08:03:02
回答 3查看 391关注 0票数 5

我有以下数据:

代码语言:javascript
复制
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

看起来是这样的:

代码语言:javascript
复制
    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

我想插入以下字典

代码语言:javascript
复制
mydict = {
    "Sample1": 0.023210000000000001,
    "Sample3": 0.039690000000000003,
    "Sample2": 0.05824
}

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

作为索引(行)名称的最后一列,SRT和SRT2。

屈服:

代码语言:javascript
复制
    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

我怎样才能做到这一点?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-01-06 08:04:57

您可以使用loc

代码语言:javascript
复制
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的解决方案

代码语言:javascript
复制
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
票数 7
EN

Stack Overflow用户

发布于 2017-01-06 08:09:32

使用append

代码语言:javascript
复制
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
代码语言:javascript
复制
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
票数 3
EN

Stack Overflow用户

发布于 2017-01-06 08:10:24

代码语言:javascript
复制
a=df.append(pd.DataFrame(mydict,index=[0]))
a=a.T
a=a.rename(columns={0:'SRT'})
a=a.T
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41501447

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档