我首先从输入的csv文件创建一个数据框,我得到了正确的格式,但现在我需要对V,I和P列执行计算。我想使用时间戳拆分数据。
即获取测试循环 0 和测试循环 1 之间所有值的 V、I 和 P 的平均值。我知道我可以使用 iloc 来做到这一点,但我正在尝试编写一个脚本,该脚本适用于可能具有不同条目数的不同日志文件。
数据框输出
如果您需要更多信息,请告诉我,任何帮助/意见将不胜感激。
我认为需要从第Time
列中提取第19
个值并聚合mean
:
df = df.groupby(df['Time'].str[:19]).mean()
如果需要,请删除之前带有NaN
s 的行:
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())