尝试使用时间戳作为位置来选择熊猫中的数据切片



我首先从输入的csv文件创建一个数据框,我得到了正确的格式,但现在我需要对V,I和P列执行计算。我想使用时间戳拆分数据。

即获取测试循环 0 和测试循环 1 之间所有值的 V、I 和 P 的平均值。我知道我可以使用 iloc 来做到这一点,但我正在尝试编写一个脚本,该脚本适用于可能具有不同条目数的不同日志文件。

数据框输出

如果您需要更多信息,请告诉我,任何帮助/意见将不胜感激。

我认为需要从第Time列中提取第19个值并聚合mean

df = df.groupby(df['Time'].str[:19]).mean()

如果需要,请删除之前带有NaNs 的行:

df = df.dropna()
df = df.groupby(df['Time'].str[:19]).mean()

如果您想获得"测试循环"行之间的线的平均值:

首先,您需要提取时间窗口的限制:

serie_time_limits = df[df['Time'].contains('Test loop')]['Time'].str[:19]
df_data = df[~df['Time'].contains('Test loop')]
df_data['Time'] = df_data['Time'].str[:19]

然后,您可以获得每个测试循环的平均值:

means = []
for i in range(len(serie_time_limits)):
if i==len(serie_time_limits)-1:
df_window = df_data[(df_data['Time']>=serie_time_limits[i])
else:
df_window = df_data[(df_data['Time']>=serie_time_limits[i]) & (df_data['Time']<serie_time_limits[i+1])]
means.append(df_window[['V', 'I', 'P']].mean())

最新更新