Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 过滤数据帧_Python_Pandas_Dataframe_Data Analysis - Fatal编程技术网

Python 过滤数据帧

Python 过滤数据帧,python,pandas,dataframe,data-analysis,Python,Pandas,Dataframe,Data Analysis,我有一个数据框: open high low close volume TimeStamp 2016-06-23 10:00:00 586.76 594.00 585.54 589.94 478.176973 2016-06-23 11:00:00 589.94 595.49 588.23 592.63

我有一个数据框:

                     open    high     low   close      volume
TimeStamp                                                      
2016-06-23 10:00:00  586.76  594.00  585.54  589.94  478.176973
2016-06-23 11:00:00  589.94  595.49  588.23  592.63  448.689485
2016-06-23 12:00:00  592.63  592.63    1.50  581.13  527.816891
2016-06-23 13:00:00  581.13  586.33  578.58  580.96  728.424757
如您所见,其中一个值不正常。 所以我想过滤它,并将其更改为最后5个值的平均值

用这个

df['avg']=df['low'].rolling(5).mean().shift()
我明白了

                      open    high     low   close      volume      avg
TimeStamp                                                               
2016-06-23 10:00:00  586.76  594.00  585.54  589.94  478.176973  573.326
2016-06-23 11:00:00  589.94  595.49  588.23  592.63  448.689485  578.438
2016-06-23 12:00:00  592.63  592.63    1.50  581.13  527.816891  583.202
2016-06-23 13:00:00  581.13  586.33  578.58  580.96  728.424757  467.348
现在,我想给低的,同样的平均值。 过滤器查找“方差”大于5的值

df.loc[(df['high']/df['low'])>5]['low']


                       open    high  low   close      volume      avg
TimeStamp                                                            
2016-06-23 12:00:00  592.63  592.63  1.5  581.13  527.816891  583.202
但当我试图给出价值时,它不起作用

 df.loc[(df['high']/df['low'])>5]['low']=df.loc[(df['high']/df['low'])>5]['avg']

你能帮我吗?

熊猫的数据帧是基于索引的,所以你需要的只是

df.loc[(df['high']/df['low'])>5,'low']=df.avg
df
Out[1331]: 
     open    high     low   close      volume     avg
0  586.76  594.00  585.54  589.94  478.176973     NaN
1  589.94  595.49  588.23  592.63  448.689485  585.54
2  592.63  592.63  588.23  581.13  527.816891  588.23
3  581.13  586.33  578.58  580.96  728.424757    1.50
你说“不行”是什么意思?您是否收到错误或警告?