我有两个不同的数据帧,如下所示.

这是tel_times数据帧

enter image description here

这是maint_comp1数据帧.

enter image description here

现在,我使用merge将这两个数据帧连接起来.

maint_tel_comp1 = pd.merge(tel_times, maint_comp1,  how='inner', left_on=['machineID','datetime_tel'], right_on = ['machineID','datetime_maint'])

结果是

enter image description here

我想对我拥有的两个datetime列应用条件.

像这样的,

maint_tel_comp1 = (telemetry_times.join(maint_comp1, 
                                        ((telemetry_times ['machineID']== maint_comp1['machineID']) 
                                         & (telemetry_times ['datetime_tel'] > maint_comp1['datetime_maint']) 
                                         & ( maint_comp1['comp1sum'] == '1')))

这是在PySpark中,但我想在Pandas 中进行.

我这样做是为了遵循同样的条件.

maint_tel_comp1[maint_tel_comp1['datetime_tel'] > maint_tel_comp1['datetime_maint']]

但它给出了一个空的数据帧.

推荐答案

我相信你想要的是:

maint_tel_comp1 = tel_times.merge(maint_comp1, on='machineID', how='inner')
maint_tel_comp1[maint_tel_comp1['datetime_tel'].gt(maint_tel_comp1['datetime_maint'])]

问题是你的合并也确保了datetime_tel == datetime_maint,因此你的条件是返回一个空的数据帧.

Python相关问答推荐

韦尔福德方差与Numpy方差不同

Django mysql图标不适用于小 case

抓取rotowire MLB球员新闻并使用Python形成表格

pandas滚动和窗口中有效观察的最大数量

按顺序合并2个词典列表

如何获取TFIDF Transformer中的值?

如何在solve()之后获得症状上的等式的值

Odoo 16使用NTFS使字段只读

为什么numpy. vectorize调用vectorized函数的次数比vector中的元素要多?

提高算法效率的策略?

Python将一个列值分割成多个列,并保持其余列相同

python的文件. truncate()意外地没有截断'

如何在信号的FFT中获得正确的频率幅值

Python协议不兼容警告

如何在Python中自动创建数字文件夹和正在进行的文件夹?

Django.core.exceptions.SynchronousOnlyOperation您不能从异步上下文中调用它-请使用线程或SYNC_TO_ASYNC

在pandas中,如何在由两列加上一个值列组成的枢轴期间或之后可靠地设置多级列的索引顺序,

高效地计算数字数组中三行上三个点之间的Angular

删除另一个div中的特定div容器

将.exe文件从.py转换后出现问题.";ModuleNotFoundError:没有名为';Selify;的模块