gpt4 book ai didi

python - 根据另一列的函数在一列中查找值

转载 作者:行者123 更新时间:2023-12-04 15:25:52 25 4
gpt4 key购买 nike

假设该值存在,例如,我如何在数据框中创建另一列“testFinal”,我将在其中获得 df["test"]- "df["test"] 的绝对值,即 0.2 秒后 ”例如,testFinal的第一个值是2和0.2秒后的值之差的绝对值-> 所以8,结果是abs(2-8) = 6

我的目标是计算“testFinal”

不知道说的是否清楚,举个例子

enter image description here

注意:时间戳不是同质的,因此两个值之间的间隔可能随时间不同

非常感谢

这是数据框的代码

df = pd.DataFrame({'Timestamp':[11.1,11.2,11.3,11.4,11.5,11.6,11.7,11.8,11.9,12.0,12.10],
'test':[2,22,8,4,5,4,5,3,54,23,89],
'testFinal':[6,18,3,0,0,1,49,20,35,np.NaN,np.NaN]})

最佳答案

首先,使用 pd.to_timedeltaTimestamp 列转换为 timedelta,创建一个新的临时列 temp ,然后将此 temp 列设置为数据帧 index,然后创建一个新列 testFinal,其值为此新索引 + 0.2 秒,然后使用 Series.map , 将 testFinal 列映射到 df['test'] 列的值,因此现在 testFinal 列的值应该与这些值相对应在 test0.2s 之后,您可以减去 testFinaltest 列中的值以获得期望的结果:

df['temp'] = pd.to_timedelta(df['Timestamp'], unit='s')
df = df.set_index('temp')

df['testFinal'] = df.index + pd.Timedelta(seconds=0.2)
df['testFinal'] = df['testFinal'].map(df['test']).sub(df['test']).abs()

df = df.reset_index(drop=True)

# print(df)
Timestamp test testFinal
0 11.1 2 6.0
1 11.2 22 18.0
2 11.3 8 3.0
3 11.4 4 0.0
4 11.5 5 0.0
5 11.6 4 1.0
6 11.7 5 49.0
7 11.8 3 20.0
8 11.9 54 35.0
9 12.0 23 NaN
10 12.1 89 NaN

关于python - 根据另一列的函数在一列中查找值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62259143/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com