2014-06-10 223 views
0

我有兩個使用Pandas創建的數據框。第一個有項目的共同出現在某些年份發生的事情:根據Python中另一個數據框中的數據選擇一個數據框中的行Pandas

Date Item1 Item2 
0 1975  a  b 
1 1976  b  c 
2 1977  b  a 
3 1977  a  b 
4 1978  c  d 
5 1979  e  f 
6 1980  a  f 

第二個擁有該項目的生日:

Birthdate Item  
1975  a 
1975  b 
1976  c 
1978  d 
1979  f 
1979  e 

現在,我要設置一個年齡的變量,例如:

age = 2 

然後填充第三個數據幀(替代改造的第一個),使我得到一個版本的第一個保持所發生的時候項目1是低於同現只排定義「年齡」。

回答

0

你可以merge DataFrames - 它是在SQL

import pandas 

data = [ 
    [1975,'a','b'], 
    [1976,'b','c'], 
    [1977,'b','a'], 
    [1977,'a','b'], 
    [1978,'c','d'], 
    [1979,'e','f'], 
    [1980,'a','f'], 
] 

birthdate = [ 
    [1975,'a'], 
    [1975,'b'], 
    [1976,'c'], 
    [1978,'d'], 
    [1979,'f'], 
    [1979,'e'] 
] 

df1 = pandas.DataFrame(data, columns = ['Date', 'Item1', 'Item2']) 
df2 = pandas.DataFrame(birthdate, columns = ['Birthdate', 'Item']) 

#print df1 
#print df2 

newdf = pandas.merge(left=df1, right=df2, left_on='Item1', right_on='Item') 

print newdf 

print newdf[ newdf['Birthdate'] > 1975 ] 

類似join

Date Item1 Item2 Birthdate Item 
0 1975  a  b  1975 a 
1 1977  a  b  1975 a 
2 1980  a  f  1975 a 
3 1976  b  c  1975 b 
4 1977  b  a  1975 b 
5 1978  c  d  1976 c 
6 1979  e  f  1979 e 

    Date Item1 Item2 Birthdate Item 
5 1978  c  d  1976 c 
6 1979  e  f  1979 e 
相關問題