我有以下 Dataframe :
import pandas as pd
aa = pd.DataFrame({'id': ['a','a','a','b'],
'week': ['2022-W13','2022-W14', '2022-W19', '2022-W14']})
bb = pd.DataFrame({'id': ['a','a','a','a','a','a','b','b','b','b'],
'week': ['2022-W12','2022-W13','2022-W14','2022-W15','2022-W16','2022-W20',
'2022-W13','2022-W14','2022-W15','2022-W16'],
'val': [0,1,2,3,4,5,6,7,8,9]})
id week
0 a 2022-W13
1 a 2022-W14
2 a 2022-W19
3 b 2022-W14
id week val
0 a 2022-W12 0
1 a 2022-W13 1
2 a 2022-W14 2
3 a 2022-W15 3
4 a 2022-W16 4
5 a 2022-W20 5
6 b 2022-W13 6
7 b 2022-W14 7
8 b 2022-W15 8
9 b 2022-W16 9
字符串
我想通过id
和week
合并两个 Dataframe ,但week
我想给予一个加或减1周。
说明:
- 对于
aa
的第一行,其中id=='a'
和week='2022-W13'
,我必须从bb
中获取行,其中id=='a'
和week='2022-W12'
或week='2022-W13'
或week='2022-W14'
- 对于
aa
的第二行,其中id=='a'
和week='2022-W14'
,我必须从bb
中获取行,其中id=='a'
和week='2022-W13'
或week='2022-W14'
或week='2022-W15'
- 等等
输出数据名应为:
pd.DataFrame({'id': ['a','a','a','a','a','b','b','b'],
'week': ['2022-W12','2022-W13','2022-W14','2022-W15','2022-W20',
'2022-W13','2022-W14','2022-W15'],
'val': [0,1,2,3,5,
6,7,8]})
id week val
0 a 2022-W12 0
1 a 2022-W13 1
2 a 2022-W14 2
3 a 2022-W15 3
4 a 2022-W20 5
5 b 2022-W13 6
6 b 2022-W14 7
7 b 2022-W15 8
型
2条答案
按热度按时间snz8szmq1#
您可以重复+/- 1周的数据框,然后合并:
字符串
x4shl7ld2#
试试这个
字符串
输出:
型