Python 组合数据帧
我尝试使用下面给出的代码在python中合并2个数据帧。以下是有关数据帧的信息Python 组合数据帧,python,pandas,Python,Pandas,我尝试使用下面给出的代码在python中合并2个数据帧。以下是有关数据帧的信息 nlxdf列名称为“NlxTTL”和“NlxTime” pittldf带有“pittlState”、“pittlSTC”、“piVideoSTC”列 以下是pittldf数据的样子: pittlSTC pittlState 1.39e+10 0 1.4e+10 1 1.4e+10 0 1.4e+10 1 1.4e+10 0 1.4e+10 1 1.4e+10
- nlxdf列名称为“NlxTTL”和“NlxTime”
- pittldf带有“pittlState”、“pittlSTC”、“piVideoSTC”列
pittlSTC pittlState
1.39e+10 0
1.4e+10 1
1.4e+10 0
1.4e+10 1
1.4e+10 0
1.4e+10 1
1.4e+10 1
1.4e+10 1
1.4e+10 1
1.4e+10 0
1.4e+10 1
1.4e+10 0
1.4e+10 1
下面是nlxdf的外观
NlxTTL NlxTime
0 13788602129.0
1 13789602296.0
0 13790602496.0
1 13791602629.0
0 13792602829.0
1 13793602996.0
0 13794603162.0
1 13795603329.0
0 13796603496.0
1 13797603662.0
0 13798603829.0
1 13799603996.0
0 13800604162.0
1 13801604329.0
以下是我使用的脚本:
import scipy.io as sio
import pandas as pd
data = sio.loadmat('testRun2.mat')
nlxTTL = list(data['NlxTTL'][0])
nlxTime = list(data['NlxTime'][0])
pittlState = list(data['pittlState'][0])
pittlSTC = list(data['pittlSTC'][0])
piVideoSTC = list(data['piVideoSTC'][0])
nlxdf = pd.DataFrame({'NlxTTL':nlxTTL, 'NlxTime':nlxTime})
pittldf = pd.DataFrame({'pittlState': pittlState, 'pittlSTC':pittlSTC, 'piVideoSTC':piVideoSTC})
merged_df = pittldf.merge(nlxdf, left_on='pittlState', right_on='NlxTTL', how='outer')
运行脚本后,我期望得到以下结果:
NlxTTL NlxTime pittlSTC pittlState
0 13788602129.0 1.39e+10 0
1 13789602296.0 1.4e+10 1
0 13790602496.0 1.4e+10 0
1 13791602629.0 1.4e+10 1
0 13792602829.0 1.4e+10 0
1 13793602996.0 1.4e+10 1
0 13794603162.0 NA NA
1 13795603329.0 1.4e+10 1
0 13796603496.0 NA NA
1 13797603662.0 1.4e+10 1
0 13798603829.0 NA NA
1 13799603996.0 1.4e+10 1
0 13800604162.0 1.4e+10 0
1 13801604329.0 1.4e+10 1
NA NA 1.4e+10 0
NA NA 1.4e+10 1
但是我不能得到这个输出。我应该如何进行?谢谢
编辑我正在尝试合并非唯一键(二进制值)上的2个数据帧
我将解释,这些数据是如何获得的。在将TTL脉冲发送到2台不同的机器(如低(0)高(1)低(0)高(1)等)后,收集此数据。记录时间。因此,对于每台机器,您应该接收高(即1)或低(即0)。但在其中一台机器上,我最终丢失了一些输入,如pittldf中所示,在连续的1或高中,应该有低(0)和高(1)的重复
我想知道是否有一种方法可以使用状态(1或0)组合这些数据帧以正确地对齐时间 抱歉,我没有在这里得到合并,您正在尝试在非唯一的二进制值上进行合并,您希望如何在这里匹配?我理解您的问题,但是否有任何方法可以继续使用此方法。我将更新我的问题,以包含您提供的信息。谢谢,我不理解这两个数据集之间的关系,请编辑您的问题以进一步解释这一点,是1对1,1对N,N对N…NlxTTL的每个值都是1对1关系,我的数据集中应该有一个pittlSTC值,正如上面的编辑中所解释的那样