我与一个测试系统一起工作,该系统输出一个大型CSV值矩阵,然后使用Python中的Pandas模块对其进行处理。系统在测试给定零件时使用的参数由预定顺序控制。一个简化的示例如下所示:
但是,在输出数据中并不需要所有这些步骤。实际上,包含“时钟频率”值为“ 3.0MHz”的行仅被用作缓冲点,以允许气候室达到预期温度。我不希望在结果中包含以这些参数收集的数据。
我发现我可以很容易地通过使用以下代码从数据框中删除这些行。请注意,在此示例中,我正在使用名为“ csvDF”的熊猫数据框。
tempBuffers = csvDF[csvDF['Clock Frequency']==3e6].index
csvDF.drop(tempBuffers, inplace=True)
这将产生以下输出:
Data frame with buffer steps removed
与此相关的问题是,现在我的“序列步骤”列是错误的。我希望数据表看起来好像这些缓冲步骤从不存在。所有非缓冲步骤的顺序步骤应该是顺序的。所需的输出如下所示:
Data frame with buffer steps removed and corrected sequence step column
要实现此目的,我需要实例化什么代码?
答案 0 :(得分:0)
您可以尝试以下操作:
n = 3 # number of rows in step
csvDF.reset_index(inplace=True, drop=True)
csvDF['Sequence step'] = pd.Series(range(len(csvDF)))
csvDF['Sequence step'] = csvDF['Sequence step'].apply(lambda x: int(x / n))