我有一个出生和死亡日期的数据集,像这样:
d1 = {'Birth_date': [1800,1810,1802,1804], 'Death_date': [1805, 1880,1854,1832]}
pd.DataFrame(data=d1)
Birth_date Death_date
0 1800 1805
1 1810 1880
2 1802 1854
3 1804 1832
我要计算:
理论上,输出如下所示:
Date Number ind. aged 1 Number ind. aged 2 Number ind. aged k
0 1800 . . .
1 1801 . . .
2 1802 . . .
3 1803 . . .
和
Date Number death aged 1 Number death aged 2 Number death aged k
0 1800 . . .
1 1801 . . .
2 1802 . . .
3 1803 . . .
我看不出有什么简单的方法来计算它。 有人面对过类似的问题吗?
你可以知道熊猫内置的分组和大小:
d1 = {'Birth_date': [1800,1810,1802,1804], 'Death_date': [1805, 1880,1854,1832]}
d1 = pd.DataFrame(data=d1)
d1['Age'] = d1['Death_date'] - d1['Birth_date']
print(d1.groupby(['Birth_date', 'Age']).size())
print(d1.groupby(['Death_date', 'Age']).size())
这将打印:
Birth_date Age
1800 5 1
1802 52 1
1804 28 1
1810 70 1
dtype: int64
和
Death_date Age
1805 5 1
1832 28 1
1854 52 1
1880 70 1
dtype: int64