【发布时间】:2021-10-08 23:52:09
【问题描述】:
我正在收集一段时间内的心率值。每个受试者收集数据的时间长度各不相同。我想制作一个最后 2 秒收集数据的表格。
import pandas as pd
import numpy as np
#example data
example_s = [["4/20/21 4:20", 302, 0, 0, 1, 2, 3],
["2/17/21 9:20",135, 1, 1.4, 8, 10, np.NaN, np.NaN],
["2/17/21 9:20", 111, 5, 5,1, np.NaN, np.NaN,np.NaN, np.NaN]]
example_s_table = pd.DataFrame(example_s,columns=['Date_Time','CID', 0, 1, 2, 3, 4, 5, 6])
desired_outcome = [["4/20/21 4:20",302,1, 2, 3],
["2/17/21 9:20",135, 1.4, 8, 10 ],
["2/17/21 9:20",111, 5, 5,1 ]]
desired_outcome_table = pd.DataFrame(desired_outcome,columns=['Date_Time','CID', "Second 1", "Second 2", "Second 3"])
我可以从此处显示的示例中了解如何收集数据的单个实例,但想知道如何快速将多个值添加到我的表中:
desired_outcome_table["Last Second"]=example_s_table.iloc[:,1:].ffill(axis=1).iloc[:, -1]
Python Dataframe Get Value of Last Non Null Column for Each Row
【问题讨论】:
-
你能解释一下如何选择这些值的逻辑吗?
-
数据从何而来?我看到太多人试图执行笨拙的 pandas 转换,在转换为数据帧之前,这些转换在原始数据上执行起来会容易得多。
-
原始数据是许多输出文件的集合。由于我是从我编写的代码中处理它的,因此它位于与问题类似格式的 excel 文件中。尴尬,是的,但这就是我所拥有的一切,因为我正在努力学习如何在飞行中做到这一点!
标签: python pandas numpy rows nan