我有两个不规则的时间序列作为数据帧(DataA和DataB),它们的行表示不同时间项的特征(A或B)的值:
DataA DataB
time item_id valueA time item_id valueB
0 x A1 3 x B1
1 y A2 4 y B2
2 z A3 5 x B3
6 y A4 6 y B4
7 z A5 7 z B5
9 x A6 8 x B6
10 y A7 10 y B7
11 z A8 11 z B8
12 z A9
python中的DF定义:
dataA = [
[0 , 'x', 'A1'], [1 , 'y', 'A2'], [2 , 'z', 'A3'],
[6 , 'y', 'A4'], [7 , 'z', 'A5'], [9 , 'x', 'A6'],
[10, 'y', 'A7'], [11, 'z', 'A8'], [12, 'z', 'A9']]
dataB = [
[3 , 'x', 'B1'], [4 , 'y', 'B2'], [5 , 'x', 'B3'],
[6 , 'y', 'B4'], [7 , 'z', 'B5'], [8 , 'x', 'B6'],
[10, 'y', 'B7'], [11, 'z', 'B8']]
dataA_df = pd.DataFrame(dataA, columns = ['time', 'item_id', 'valueA'])
dataB_df = pd.DataFrame(dataB, columns = ['time', 'item_id', 'valueB'])
我想生成一个合并的数据框,这将导致以下结果:
time item_id valueA valueB
0 x A1 NaN
1 y A2 NaN
2 z A3 NaN
3 x A1 B1
4 y A2 B2
5 x A1 B3
6 y A4 B4
7 z A5 B5
8 x A1 B6
9 x A6 B6
10 y A7 B7
11 z A8 B8
12 z A9 B8
哪里:
如果有一个项目X在时间T对valueA和valueB都进行了更新,那么将存在一个同时包含这两个值的行。
否则,如果某项X仅更新一个值(值A或值B),则存在包含该值的行,而另一个缺失值是前一个值
如果[2]中的缺失值没有先前的值,则应在其位置使用NaN
参考方案
首先合并框架并对其进行排序:
df = pd.merge(
left=dataA_df,
right=dataB_df,
on=['time', 'item_id'],
how='outer'
)
df = df.sort_values('time')
然后通过item_id向前填充
df.groupby('item_id').ffill()
time item_id valueA valueB
0 x A1 NaN
1 y A2 NaN
2 z A3 NaN
3 x A1 B1
4 y A2 B2
5 x A1 B3
6 y A4 B4
7 z A5 B5
8 x A1 B6
9 x A6 B6
10 y A7 B7
11 z A8 B8
12 z A9 B8
在返回'Response'(Python)中传递多个参数 - python我在Angular工作,正在使用Http请求和响应。是否可以在“响应”中发送多个参数。角度文件:this.http.get("api/agent/applicationaware").subscribe((data:any)... python文件:def get(request): ... return Response(seriali…
Python exchangelib在子文件夹中读取邮件 - python我想从Outlook邮箱的子文件夹中读取邮件。Inbox ├──myfolder 我可以使用account.inbox.all()阅读收件箱,但我想阅读myfolder中的邮件我尝试了此页面folder部分中的内容,但无法正确完成https://pypi.python.org/pypi/exchangelib/ 参考方案 您需要首先掌握Folder的myfo…
Python:如何根据另一列元素明智地查找一列中的空单元格计数? - pythondf = pd.DataFrame({'user': ['Bob', 'Jane', 'Alice','Jane', 'Alice','Bob', 'Alice'], 'income…
R'relaimpo'软件包的Python端口 - python我需要计算Lindeman-Merenda-Gold(LMG)分数,以进行回归分析。我发现R语言的relaimpo包下有该文件。不幸的是,我对R没有任何经验。我检查了互联网,但找不到。这个程序包有python端口吗?如果不存在,是否可以通过python使用该包? python参考方案 最近,我遇到了pingouin库。
Python ThreadPoolExecutor抑制异常 - pythonfrom concurrent.futures import ThreadPoolExecutor, wait, ALL_COMPLETED def div_zero(x): print('In div_zero') return x / 0 with ThreadPoolExecutor(max_workers=4) as execut…