我有一个数据框,其中包含带有日期的列和带有股票价格列表的列。我想打印一条消息,报告观察到的最高股价以及观察到的相应日期。
通过使用filter()
,vlookup
或简单的index-match
函数可以解决Excel中的此问题。
什么是Python等价物?我对创建新列不感兴趣,而只是打印日期。
我的数据框(.offset(0,-1)
)的示例:
我的代码段:
data_df
其中 max1 = data_df.loc[:, ticker].max()
max1_date = "test" #data_df.loc[data_df.idxmax(axis=0,skipna=True), 'Date']
print("The highest stock price observed at: \n", ticker, ":", max1.round(2), "USD on the date ", max1_date
)
在我的代码的其他位置生成。在此示例中,股票代码为 ATVI 。
答案 0 :(得分:1)
我通过设置解决了:
max1_date = data_df[data_df[ticker] == max1]['Date'].values[0]
答案 1 :(得分:1)
您可以将DataFrame.loc
与next
和iter
一起使用,以获取第一个匹配的值,如果值不匹配,则获取字符串no match
:
max1_date = next(iter(data_df.loc[data_df[ticker] == max1, 'Date']), 'no match')
答案 2 :(得分:1)
data_df.iloc[data_df.ATVI.idxmax()]