Python 按列对数据帧设置阈值

Python 按列对数据帧设置阈值,python,pandas,matplotlib,Python,Pandas,Matplotlib,我从一个具有6个自由度的传感器收集数据,现在我正试图在其上执行一些绘图和最终的信号处理任务 我制作了一个Pandas数据帧,并试图根据列“Stamp”(以秒为单位的时间戳值)设置阈值或剪裁数据集。到目前为止,我已经创建了我的数据帧: headers = ["Stamp", "liny1", "linz1", "angy1", "angz1", "linx2", "liny2"] df = pd.read_csv("Test2.csv", header=0, names = headers, de

我从一个具有6个自由度的传感器收集数据,现在我正试图在其上执行一些绘图和最终的信号处理任务

我制作了一个Pandas数据帧,并试图根据列“Stamp”(以秒为单位的时间戳值)设置阈值或剪裁数据集。到目前为止,我已经创建了我的数据帧:

headers = ["Stamp", "liny1", "linz1", "angy1", "angz1", "linx2", "liny2"]
df = pd.read_csv("Test2.csv", header=0, names = headers, delimiter = ';')
df
这给了我:

我现在希望在18秒之前设置数据阈值,因为之后的一切都只是噪声。我尝试在熊猫中使用阈值函数,但我不确定是否正确。有人能指出我的错误是什么吗

df_thresh = df.clip(lower=None, upper=18)
我想你想要:


将所有较高的值替换为
18
18

df_thresh = df.clip(lower=None, upper=18) #df.clip_upper(18)
print (df_thresh)
   Stamp  liny1  linz1  angy1  angz1  linx2  liny2
0     11     18      6     18      2      3      3
1     12     18     18     18     18      5     13
2     18     18     11     18     10      0     18
3     18     12     13     18     18     18     18
4     18     18     18     18     18     18     18

听起来你想用
loc
过滤你的数据,过滤时间不超过19秒

df.loc[df['Stamp'] < 19]  # Not sure what units 'Stamp' is in. Seconds?

你的建议对我有效。然而,我不断地得到一个关键错误,所以我通过添加编码信息修复了这个问题,现在它可以正常工作了。是的,“Stamp”是以秒为单位的。
df_thresh = df.clip(lower=None, upper=18) #df.clip_upper(18)
print (df_thresh)
   Stamp  liny1  linz1  angy1  angz1  linx2  liny2
0     11     18      6     18      2      3      3
1     12     18     18     18     18      5     13
2     18     18     11     18     10      0     18
3     18     12     13     18     18     18     18
4     18     18     18     18     18     18     18
df.loc[df['Stamp'] < 19]  # Not sure what units 'Stamp' is in. Seconds?
>>> pd.Series(range(16,21)).clip_upper(18)
0    16
1    17
2    18
3    18
4    18
dtype: int64