Pandas 如何使用列表在列之间进行计算
假设我有一个python列表(比如公司名称) A=['A','b','c'] 还有一个数据框,以日期为索引,列为公司名称,在该列下有股票市场的开盘、收盘、高点和低点数据Pandas 如何使用列表在列之间进行计算,pandas,dataframe,Pandas,Dataframe,假设我有一个python列表(比如公司名称) A=['A','b','c'] 还有一个数据框,以日期为索引,列为公司名称,在该列下有股票市场的开盘、收盘、高点和低点数据 我怎样才能循环检查一家公司哪一天的开盘和收盘价差最大?我猜你想知道哪只股票在某一天的开盘与前一天的收盘价差百分比最高 如果是这样,您可以将您描述的多指数df分为open\u df和close\u df和shift()收盘日期,以便前一天的收盘日期与当天的开盘日期一致。将open_df除以close_df得到一个df,其中包含每只
我怎样才能循环检查一家公司哪一天的开盘和收盘价差最大?我猜你想知道哪只股票在某一天的开盘与前一天的收盘价差百分比最高 如果是这样,您可以将您描述的多指数df分为
open\u df
和close\u df
和shift()
收盘日期,以便前一天的收盘日期与当天的开盘日期一致。将open_df
除以close_df
得到一个df,其中包含每只股票的开盘价与收盘价的百分比变化。取这些值中的df.max(axis=1)
可获得每天(行)的最高变化百分比,然后可用于获取股票行情。(这可能不是最好的方法,但它很有效:)
获取单独的df,并将打开除以关闭:
open_df = stocks.loc[:, 'Open']
close_df = stocks.loc[:, 'Close'].shift()
df = open_df / close_df
df:
AAPL MSFT NFLX NVDA
Date
2020-08-24 NaN NaN NaN NaN
2020-08-25 0.990783 0.997239 0.998732 0.992964
2020-08-26 1.010855 1.006514 1.003914 1.003863
2020-08-27 1.004900 1.007868 0.982193 1.000665
2020-08-28 1.008019 1.007061 1.010888 1.003702
在每一行上循环以获得开盘与收盘最高的股票
highest = ['none']
for row in range(1, len(df)):
mask = df.iloc[row, :] == df.max(axis=1)[row]
highest.append(mask[mask].index[0])
df['highest_open_vs_close'] = highest
df
AAPL MSFT NFLX NVDA highest_open_vs_close
Date
2020-08-24 NaN NaN NaN NaN none
2020-08-25 0.990783 0.997239 0.998732 0.992964 NFLX
2020-08-26 1.010855 1.006514 1.003914 1.003863 AAPL
2020-08-27 1.004900 1.007868 0.982193 1.000665 MSFT
2020-08-28 1.008019 1.007061 1.010888 1.003702 NFLX
请做一份报告。您可以从开始并根据需要修改它。
highest = ['none']
for row in range(1, len(df)):
mask = df.iloc[row, :] == df.max(axis=1)[row]
highest.append(mask[mask].index[0])
df['highest_open_vs_close'] = highest
df
AAPL MSFT NFLX NVDA highest_open_vs_close
Date
2020-08-24 NaN NaN NaN NaN none
2020-08-25 0.990783 0.997239 0.998732 0.992964 NFLX
2020-08-26 1.010855 1.006514 1.003914 1.003863 AAPL
2020-08-27 1.004900 1.007868 0.982193 1.000665 MSFT
2020-08-28 1.008019 1.007061 1.010888 1.003702 NFLX