2017-01-06 13 views
5

Aşağıdaki dataframe vardır:Pandalar DataFrame son satırlar olarak sözlükleri eklemek nasıl

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 

Bu şuna benzer:

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 

aşağıdaki Dictionary

eklemek istediğiniz Dizin (satır) adları SRT ve SRT2 olan son sütun olarak
mydict = { 
    "Sample1": 0.000000000001, 
    "Sample3": 0.039690000000000003, 
    "Sample2": 0.05824 
} 

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

.

Verim:

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 

Bunu nasıl başarabiliriz?

cevap

7

Sen loc kullanabilirsiniz:

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 

Çözüm concat ile:

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

kullanılarak 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