Python 如何在空单元格中填充数据框内容NA值?

Python 如何在空单元格中填充数据框内容NA值?,python,pandas,dataframe,multiple-columns,nan,Python,Pandas,Dataframe,Multiple Columns,Nan,我有一个数据帧df: Open Volume Adj Close Ticker Date 2006-11-22 140.750000 45505300 114.480649 SPY 我想将df更改为另一个dataframe开放价格,如下所示: SPY

我有一个数据帧df:

                  Open    Volume  Adj Close     Ticker  
Date                                                                   
2006-11-22  140.750000   45505300   114.480649   SPY 
我想将df更改为另一个dataframe开放价格,如下所示:

                  SPY    AGG  
Date                                                                   
2006-11-22  140.750000   NA

它只使用open的数据和两个ticker,那么如何将一个数据帧更改为另一个数据帧呢?

我认为您可以使用
数据帧
构造函数和
ticker
列表:

L = ['SPY','AGG']
df1 = pd.DataFrame({'SPY': [df.Open.iloc[0]]}, 
                   index=[df.index[0]])

df1 = df1.reindex(columns=L)
print (df1)
               SPY  AGG
2006-11-22  140.75  NaN
您可以使用查找<代码>股票的列表

df2 = pd.read_html('https://en.wikipedia.org/wiki/List_of_S%26P_500_companies', header=0)[0]
#print (df2)

#filter only Ticker symbols starts with SP
df2 = df2[df2['Ticker symbol'].str.startswith('SP')]
print (df2)
    Ticker symbol                  Security SEC filings  \
407           SPG  Simon Property Group Inc     reports   
415          SPGI          S&P Global, Inc.     reports   
418          SPLS              Staples Inc.     reports   

                GICS Sector               GICS Sub Industry  \
407             Real Estate                           REITs   
415              Financials  Diversified Financial Services   
418  Consumer Discretionary                Specialty Stores   

       Address of Headquarters Date first added      CIK  
407      Indianapolis, Indiana              NaN  1063761  
415         New York, New York              NaN    64040  
418  Framingham, Massachusetts              NaN   791519  

#convert column to list, add SPY because missing
L = ['SPY'] + df2['Ticker symbol'].tolist() 
print (L)
['SPY', 'SPG', 'SPGI', 'SPLS']

df1 = pd.DataFrame({'SPY': [df.Open.iloc[0]]}, 
                   index=[df.index[0]])

df1 = df1.reindex(columns=L)
print (df1)
               SPY  SPG  SPGI  SPLS
2006-11-22  140.75  NaN   NaN   NaN

假设您有一个针对不同股票的数据帧列表
df_list
,并且列表中的每一项都具有与示例中的
df
相同的外观

您可以首先使用以下命令将它们连接到一个帧中:

df1 = pd.concat(df_list)
然后

df1[["Open", "Ticker"]].reset_index().set_index(["Date", "Ticker"]).unstack()
它应该给你一个输出,比如

            Open
Ticker      AGG     SPY
Date        
2006-11-22  NAN  140.75

df
中只有一行的可能重复?是的,在df中只有一行,否则我应该在df中添加一行AGG标记(全部NaN)?然后使用“df=pd.pivot(index=df.index,columns=df.ticker,values=df.Open)”可以将所有标记添加到
列表中吗?您能解释如何将所有标记添加到列表中吗?难题,可以在网上找到一些表格吗?你能帮我吗?我找到了所有的标准普尔500指数: