我有两个用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
然后填充第三个数据框(替代转换第一个数据框),这样我得到的第一个数据版本只保留了当Item1低于定义的'age'时发生的共现行。
答案 0 :(得分:0)
你可以merge
DataFrames - 它类似于SQL中的join
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 ]
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