Pandas 如何使用列表在列之间进行计算

Pandas 如何使用列表在列之间进行计算,pandas,dataframe,Pandas,Dataframe,假设我有一个python列表(比如公司名称) A=['A','b','c'] 还有一个数据框,以日期为索引,列为公司名称,在该列下有股票市场的开盘、收盘、高点和低点数据 我怎样才能循环检查一家公司哪一天的开盘和收盘价差最大?我猜你想知道哪只股票在某一天的开盘与前一天的收盘价差百分比最高 如果是这样,您可以将您描述的多指数df分为open\u df和close\u df和shift()收盘日期,以便前一天的收盘日期与当天的开盘日期一致。将open_df除以close_df得到一个df,其中包含每只

假设我有一个python列表(比如公司名称) A=['A','b','c']

还有一个数据框,以日期为索引,列为公司名称,在该列下有股票市场的开盘、收盘、高点和低点数据


我怎样才能循环检查一家公司哪一天的开盘和收盘价差最大?

我猜你想知道哪只股票在某一天的开盘与前一天的收盘价差百分比最高

如果是这样,您可以将您描述的多指数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