Python 基于一系列数据筛选行
我一直面临筛选列中的值的问题。我有一个数据框(数据),它看起来像下面的那个Python 基于一系列数据筛选行,python,pandas,Python,Pandas,我一直面临筛选列中的值的问题。我有一个数据框(数据),它看起来像下面的那个 Index Value 2019-11-22 00:00:00 0.0 2019-11-22 00:05:00
Index Value
2019-11-22 00:00:00 0.0
2019-11-22 00:05:00 1.0
2019-11-22 00:10:00 2.0
2019-11-22 00:15:00 3.0
2019-11-22 00:20:00 4.0
2019-11-22 00:25:00 5.0
2019-11-22 00:30:00 6.0
2019-11-22 00:35:00 7.0
2019-11-22 00:40:00 8.0
2019-11-22 00:45:00 0.0
2019-11-22 00:50:00 0.0
2019-11-22 00:55:00 1.0
2019-11-22 01:00:00 2.0
2019-11-22 01:05:00 3.0
2019-11-22 01:10:00 4.0
2019-11-22 01:15:00 5.0
我希望保留大于5的值序列,并希望将所有其他值赋值为零。例如,如果值为1-5,则5之前的所有值都应设置为零,如果有8行值为1-8,则代码应保持原样
Index Value
2019-11-22 00:00:00 0.0
2019-11-22 00:05:00 1.0
2019-11-22 00:10:00 2.0
2019-11-22 00:15:00 3.0
2019-11-22 00:20:00 4.0
2019-11-22 00:25:00 5.0
2019-11-22 00:30:00 6.0
2019-11-22 00:35:00 7.0
2019-11-22 00:40:00 8.0
2019-11-22 00:45:00 0.0
2019-11-22 00:50:00 0.0
2019-11-22 00:55:00 0.0
2019-11-22 01:00:00 0.0
2019-11-22 01:05:00 0.0
2019-11-22 01:10:00 0.0
2019-11-22 01:15:00 0.0
当我尝试
data[data<5]=0
data[data试试这个:
filter=data[“Value”]。其中(data[“Value”]>5,0)
索引_,其中_6=filter[filter==6]。索引
对于索引_和_6中的idx:
过滤器[idx-5:idx]=[1,2,3,4,5]
打印(过滤器)
让我们试试这个:
df = pd.read_clipboard(index_col=0, sep='\s\s+')
df.index = pd.to_datetime(df.index)
grp = df['Value'].diff().lt(0).cumsum()
df_out = df.where(df.groupby(grp)['Value'].transform('max').gt(5), 0)
print(df_out)
输出:
Value
Index
2019-11-22 00:00:00 0.0
2019-11-22 00:05:00 1.0
2019-11-22 00:10:00 2.0
2019-11-22 00:15:00 3.0
2019-11-22 00:20:00 4.0
2019-11-22 00:25:00 5.0
2019-11-22 00:30:00 6.0
2019-11-22 00:35:00 7.0
2019-11-22 00:40:00 8.0
2019-11-22 00:45:00 0.0
2019-11-22 00:50:00 0.0
2019-11-22 00:55:00 0.0
2019-11-22 01:00:00 0.0
2019-11-22 01:05:00 0.0
2019-11-22 01:10:00 0.0
2019-11-22 01:15:00 0.0
data[data['Value']>5]=0
?这将把5以上的所有值都指定为零。我想将整个系列保持在1-8之间什么定义了“值系列”在你的专栏中?你能重新措辞吗?你想保持第一个升序,当你达到5时,然后开始将每个少于5个元素转换为零。正确吗?更新了问题以获得clarityDone!谢谢你的帮助
Value
Index
2019-11-22 00:00:00 0.0
2019-11-22 00:05:00 1.0
2019-11-22 00:10:00 2.0
2019-11-22 00:15:00 3.0
2019-11-22 00:20:00 4.0
2019-11-22 00:25:00 5.0
2019-11-22 00:30:00 6.0
2019-11-22 00:35:00 7.0
2019-11-22 00:40:00 8.0
2019-11-22 00:45:00 0.0
2019-11-22 00:50:00 0.0
2019-11-22 00:55:00 0.0
2019-11-22 01:00:00 0.0
2019-11-22 01:05:00 0.0
2019-11-22 01:10:00 0.0
2019-11-22 01:15:00 0.0