如何将年度金额添加到Pandas中的每日数据
我有两个熊猫数据帧。其中一个每月都有数据,另一个每年都有数据。我需要做一些计算,把年值加到月值上 大概是这样的:如何将年度金额添加到Pandas中的每日数据,pandas,Pandas,我有两个熊猫数据帧。其中一个每月都有数据,另一个每年都有数据。我需要做一些计算,把年值加到月值上 大概是这样的: 2013-01-01 (1+1) = 2 2013-02-01 (1+1) = 2 ... 2014-01-01 (1+2) = 3 2014-02-01 (1+2) = 3 ... 2015-01-01 (1+3)
2013-01-01 (1+1) = 2
2013-02-01 (1+1) = 2
...
2014-01-01 (1+2) = 3
2014-02-01 (1+2) = 3
...
2015-01-01 (1+3) = 4
df1,每月:
2013-01-01 1
2013-02-01 1
...
2014-01-01 1
2014-02-01 1
...
2015-01-01 1
df2,每年:
2013-01-01 1
2014-01-01 2
2015-01-01 3
我想制作这样的东西:
2013-01-01 (1+1) = 2
2013-02-01 (1+1) = 2
...
2014-01-01 (1+2) = 3
2014-02-01 (1+2) = 3
...
2015-01-01 (1+3) = 4
如果根据年份将月度数据的值添加到年度数据的值中(括号中的第一个值是月度数据,第二个值是年度数据)。假设您的“月”列在数据框df
中被称为date
,则您可以使用成员获取年份:
将这样的列添加到您的月份数据框中,并将其命名为year
。(有关说明,请参阅)
现在对年份数据框执行相同的操作
对月和年数据帧执行一次调整,指定how=left
在结果数据框中,您将拥有两列。现在只需添加它们
示例
month_df = pd.DataFrame({
'date': ['2013-01-01', '2013-02-01', '2014-02-01'],
'amount': [1, 2, 3]})
year_df = pd.DataFrame({
'date': ['2013-01-01', '2014-02-01', '2015-01-01'],
'amount': [7, 8, 9]})
month_df['year'] = pd.to_datetime(month_df.date).dt.year
year_df['year'] = pd.to_datetime(year_df.date).dt.year
>>> pd.merge(
month_df,
year_df,
left_on='year',
right_on='year',
how='left')
amount_x date_x year amount_y date_y
0 1 2013-01-01 2013 7 2013-01-01
1 2 2013-02-01 2013 7 2013-01-01
2 3 2014-02-01 2014 8 2014-02-01
谢谢你,阿美,但是什么是dt?@Landmaster不客气。请参阅答案的更新-它包含一个链接。