【问题标题】:Pulling a value from the same row as the max value in a different column [duplicate]从同一行中提取一个值作为不同列中的最大值[重复]
【发布时间】:2022-01-17 08:58:28
【问题描述】:

您如何获得与 hi 列中的最大值位于同一行的日期值?

hi 栏中的最大值是 9:39 顺便说一句

熊猫数据框的输出:

       date         hi       lo      open    close            
12/10/2021 9:24   175.49   175.41   175.42   175.49     
12/10/2021 9:25   175.48   175.25   175.41   175.26    
12/10/2021 9:26    175.3   175.15   175.26   175.18     
12/10/2021 9:27   175.26    175.1   175.16   175.16    
12/10/2021 9:28   175.19    175.1   175.12   175.15    
12/10/2021 9:29   175.27   175.15   175.15   175.23    
12/10/2021 9:30   176.03   175.14   175.25   175.71  
12/10/2021 9:31    175.9   175.46   175.71    175.9   
12/10/2021 9:32    176.1   175.68   175.88   175.73   
12/10/2021 9:33   175.87   175.37   175.74  175.615   
12/10/2021 9:34    176.1   175.52  175.609   176.05   
12/10/2021 9:35   176.11   175.54   176.06   175.64   
12/10/2021 9:36   176.15   175.51   175.65  176.005   
12/10/2021 9:37   176.32   175.87  175.992   176.17   
12/10/2021 9:38   176.53   176.14  176.165   176.47   
12/10/2021 9:39  176.556  176.345   176.48  176.367   
12/10/2021 9:40   176.42  176.005   176.35  176.005   
12/10/2021 9:41   176.05   175.66   176.01   176.01   
12/10/2021 9:42   176.03   175.81  176.011   175.89   
12/10/2021 9:43  176.215   175.88  175.908  176.188   
12/10/2021 9:44   176.45   176.01   176.18  176.025   
12/10/2021 9:45   176.36   175.88   176.02  175.935   
12/10/2021 9:46   176.03   175.76   175.94    175.8   
12/10/2021 9:47  175.775   175.45  175.775   175.56   
12/10/2021 9:48   175.76   175.45   175.55  175.739   
12/10/2021 9:49   175.89   175.56   175.73   175.66   
12/10/2021 9:50   175.86   175.55   175.66   175.83   
12/10/2021 9:51   176.12   175.81   175.84   176.01   
12/10/2021 9:52   176.06  175.721  176.015   175.83   
12/10/2021 9:53   176.01  175.745   175.83   175.78   
12/10/2021 9:54  175.895   175.67   175.79  175.695   
12/10/2021 9:55  175.705   175.24  175.685  175.375   
12/10/2021 9:56   175.38   175.05   175.38  175.155   
12/10/2021 9:57    175.4  174.925   175.15  174.925   
12/10/2021 9:58  175.001   174.69   174.92  174.775   
12/10/2021 9:59   175.21   174.75  174.775   175.18   
12/10/2021 10:00   175.51   175.09   175.18   175.45 

下面的代码将获得 Hi 列中的最高点:

df['date'] = pd.to_datetime(df['date'],infer_datetime_format=True)
df = df[(df['date'] >= "12/10/2021 9:30") & (df['date'] <= "12/10/2021 10:00")]['hi'].max()

从中我如何获得当天最高点发生的时间?

我想要的输出>> “HOD时间:12/10/2021 9:39”

【问题讨论】:

标签: python pandas csv stock


【解决方案1】:

DataFrame.locSeries.idxmax 一起使用:

df.loc[df[(df['date'] >= "12/10/2021 9:30") & (df['date'] <= "12/10/2021 10:00")]['hi'].idxmax()]

对列调用idxmax会返回其中最大值的索引,df.loc[X]会返回索引X处的行。

【讨论】:

  • "TypeError: reduction operation 'argmax' not allowed for this dtype is the call back" 将代码放入时收到此消息。@user17242583
  • 奇数@Cash。请您尽快发送print(df.sample().to_dict()) 的结果吗?
  • 不,我的意思是让你在 Python 文件中执行 print(df.sample().to_dict()) 并将它产生的输出发送给我。
  • 输出:{'Date': {479: Timestamp('2021-12-10 13:26:00')}, 'Hi': {479: '177.53'}, 'Lo': {479: '177.425'}, 'Open': {479: '177.47'}, 'Close': {479: '177.47'}, 'Volume': {479: '152169'}}@user17242583
猜你喜欢
  • 1970-01-01
  • 2022-12-14
  • 1970-01-01
  • 1970-01-01
  • 2015-12-11
  • 2021-12-18
  • 1970-01-01
  • 2020-11-11
  • 2021-06-10
相关资源
最近更新 更多