Python 如何分别处理具有多个测量时间列和多个测量变量的数据帧

Python 如何分别处理具有多个测量时间列和多个测量变量的数据帧,python,pandas,Python,Pandas,我是Python的新手,我正在处理一个关于熊猫机器学习的数据预处理问题。 我要预处理的数据由n个测量变量组成,其中每个变量都有自己的“时间戳”。此外,每个测量变量的列长度不同(例如,变量a为50个测量值,变量b为1000个测量值)。 对于机器学习,我需要插值数据。我希望每个测量变量的时间戳是相同的。如何有效地对这样的数据帧进行上采样和下采样 首先,我成功地从相应的.dat文件导入了数据 然后,针对每个时间点和测量值,我将数据帧拆分为一个数据帧,以删除所有nan值 现在,我陷入了如何对这些数据帧进

我是Python的新手,我正在处理一个关于熊猫机器学习的数据预处理问题。 我要预处理的数据由n个测量变量组成,其中每个变量都有自己的“时间戳”。此外,每个测量变量的列长度不同(例如,变量a为50个测量值,变量b为1000个测量值)。 对于机器学习,我需要插值数据。我希望每个测量变量的时间戳是相同的。如何有效地对这样的数据帧进行上采样和下采样

首先,我成功地从相应的.dat文件导入了数据

然后,针对每个时间点和测量值,我将数据帧拆分为一个数据帧,以删除所有nan值

现在,我陷入了如何对这些数据帧进行上采样/下采样的困境。 时间向量始终作为总处理时间提供,单位为hh:mm:ss。不幸的是,我不能在这里使用pandas重采样函数,因为我的数据中给出的时间点不是DateTime格式。此外,加工时间本身对机器学习任务也非常重要。所以我不想把处理时间改成日期时间

也许你知道一种简单有效的方法来处理我的数据? 对于机器学习任务,需要处理一些GBs的数据,因此一种有效的方法是我非常感兴趣的

'Import data'
 df = pd.read_csv('FILE', sep="\t",
                   names=['t_a','a','t_b','b','t_c','c', 
                          't_d','d','t_e','e','t_f','f',
                          't_g','g','t_h','h','t_i','i'],
                   parse_dates=['t_a','t_b','t_c',
                                't_d','t_e','t_f',
                                't_g','t_h','t_i'],
                   decimal = ',',
                   header=1)

"Split df into touple of respective measuring time-point and measured 
value"
"Then, Drop all nan-values"
dfs=np.split(df,[2],axis=1)
a=dfs[0]
a=a.dropna()

dfs=np.split(dfs[1],[2],axis=1)
b=dfs[0]
b=b.dropna()

dfs=np.split(dfs[1],[2],axis=1)
c=dfs[0]
c=c.dropna()

"And so on..."

现在,我修复了将流程时间解析为日期时间对象的问题,如下所示:

def parse_processtime(df, df_columns):
for col in df_columns:
    if df[col].dtype == object:
        df[col] = pd.to_timedelta(df[col], errors='ignore')

df = pd.read_csv('FILE', sep="\t",
                   names=['t_a','a','t_b','b','t_c','c', 
                          't_d','d','t_e','e','t_f','f',
                          't_g','g','t_h','h','t_i','i'],
                   parse_dates=['t_a','t_b','t_c',
                                't_d','t_e','t_f',
                                't_g','t_h','t_i'],
                   infer_datetime_format=True,
                   decimal = ',',
                   header=1)

## Parse process-time
parse_processtime(df, df.columns)

现在,我修复了将流程时间解析为日期时间对象的问题,如下所示:

def parse_processtime(df, df_columns):
for col in df_columns:
    if df[col].dtype == object:
        df[col] = pd.to_timedelta(df[col], errors='ignore')

df = pd.read_csv('FILE', sep="\t",
                   names=['t_a','a','t_b','b','t_c','c', 
                          't_d','d','t_e','e','t_f','f',
                          't_g','g','t_h','h','t_i','i'],
                   parse_dates=['t_a','t_b','t_c',
                                't_d','t_e','t_f',
                                't_g','t_h','t_i'],
                   infer_datetime_format=True,
                   decimal = ',',
                   header=1)

## Parse process-time
parse_processtime(df, df.columns)