跨天匹配两个变量并检查第三个变量

2024-10-03 02:43:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在检查每天更新的数据库中的数据,我需要设置一些控件来检查这些更新是否正确完成。你知道吗

我有3列,其中2列是标识符(id和comp),代码应该在两天内匹配这两个,t天和t-1天。然后它应该检查val列中的符号(-/+)变化。你知道吗

如果符号被更改,代码应该输出sec-id

   Day t-1                Day t
 id   comp   val     id     comp    val
KL102  bal  -0.12    KL102   bal    0.15
KL102  pol   0.55    KL102   pol   -0.48
2588   bal  -0.58    2588    bal   -0.88
2588   typ   1.8     2588    typ   -1.2

问题是,如何做到这一点?简单地给我指出正确的方向,我现在正在网上看不同的匹配教程和其他类似的问题。到目前为止,我还没有遇到过这样的事情:在日期间匹配两个变量,然后检查第三个变量。你知道吗

如果我把数据分开,那么每个日期都有一个数据帧,会不会更简单?做一些类似if df1['id'] == df2['id'] & df1['comp'] == df2['comp']:的事情?你知道吗


Tags: 数据代码id数据库符号val事情df1
1条回答
网友
1楼 · 发布于 2024-10-03 02:43:57

一种方法是通过连接数据帧将新的一天添加为新的列。(如果您只需将新日期添加为新列,则无需执行此步骤,然后继续执行下一步)

df = pd.merge(df1, df2, how='inner', on=['id1', 'id2'])

然后比较这两天有没有变化。 可以用numpys符号进行比较:

df['comp'] = np.sign(df['day 1']) + np.sign(df['day 2'])
df['output'] = df['day 1']
df['output'].loc[df['comp'] == 0] = df['day 2']

相关问题 更多 >