Python 3.x 熊猫的最大值和最小值
我有以下数据:Python 3.x 熊猫的最大值和最小值,python-3.x,pandas,max,min,Python 3.x,Pandas,Max,Min,我有以下数据: High Low Open Close Volume Adj Close Date 1999-12-31 1472.420044 1458.189941 1464.469971 1469.250000 374050000 1469.250000 2000-01-03 1478.000000 1438.359985 1469.250000 1455.219971 931800000 1455.219971
High Low Open Close Volume Adj Close
Date
1999-12-31 1472.420044 1458.189941 1464.469971 1469.250000 374050000 1469.250000
2000-01-03 1478.000000 1438.359985 1469.250000 1455.219971 931800000 1455.219971
2000-01-04 1455.219971 1397.430054 1455.219971 1399.420044 1009000000 1399.420044
2000-01-05 1413.270020 1377.680054 1399.420044 1402.109985 1085500000 1402.109985
2000-01-06 1411.900024 1392.099976 1402.109985 1403.449951 1092300000 1403.449951
... ... ... ... ... ... ...
2020-01-06 3246.840088 3214.639893 3217.550049 3246.280029 3674070000 3246.280029
2020-01-07 3244.909912 3232.429932 3241.860107 3237.179932 3420380000 3237.179932
2020-01-08 3267.070068 3236.669922 3238.590088 3253.050049 3720890000 3253.050049
2020-01-09 3275.580078 3263.669922 3266.030029 3274.699951 3638390000 3274.699951
2020-01-10 3282.989990 3268.010010 3281.810059 3273.739990 920449258 3273.739990
5039 rows × 6 columns
由于这是每日数据,因此将其重新采样为每周,以找到52周的高点和低点
weekly_high = data.High.groupby(pd.Grouper(freq='M')).tail(52)
weekly_low = data.Low.groupby(pd.Grouper(freq='M')).tail(52)
问题是:
weekly_high.max()
收益率:3282.989990234375
weekly_low.min()
有效期:666.7899780273438
这些值都是问题,因为3283.0是最高值,所以为什么我要使用deimals?第二周低点是666,我知道这是不正确的。如何修复此问题?您好,您可以尝试以下代码:
data['52weekhigh'] = data.High.rolling(252).max()
data['52weeklow'] = data.Low.rolling(252).min()
这使您可以避免每月重新取样,并为您提供52周的滚动高点(52周==252个交易日)。如果您需要任何进一步的澄清,请告诉我。您好,您可以尝试以下代码:
data['52weekhigh'] = data.High.rolling(252).max()
data['52weeklow'] = data.Low.rolling(252).min()
这使您可以避免每月重新取样,并为您提供52周的滚动高点(52周==252个交易日)。如果您需要进一步澄清,请告诉我。您正在根据最近52行计算最大值和最小值。我不明白您想说什么对不起。最小值和最大值是否可能不是最后52行的一部分?当您创建
每周\u高
和每周\u低
时,您只取最后52行,因为您有.tail(52)
。如果您要查找的最小值和最大值在这些行之外,那么在查找最后52行的最大值时肯定找不到它们。您是对的!我猜。尾巴(52)只是向你们展示,实际上并没有切片。长度为length:5039
您正在根据最后52行计算最大值和最小值。我不明白您想说什么对不起。最小值和最大值是否可能不是最后52行的一部分?当您创建每周\u高
和每周\u低
时,您只取最后52行,因为您有.tail(52)
。如果您要查找的最小值和最大值在这些行之外,那么在查找最后52行的最大值时肯定找不到它们。您是对的!我猜。尾巴(52)只是向你们展示,实际上并没有切片。长度为length:5039