Jul-14-2023, 01:24 PM
I am trying to convert from DataFrame.append() which has been deprecated to DataFrame.concat() and having some issues with an otherwise working code as below. The commented section works just fine with no issues, except that I get the deprecated warning.
def chunks(lst, n): """Yield successive n-sized chunks from lst.""" for i in range(0, len(lst), n): yield lst[i:i + n] symbol_groups = list(chunks(stocks['Ticker'], 100)) symbol_chunks = [] for i in range(0, len(symbol_groups)): symbol_chunks.append(','.join(symbol_groups[i])) final_dataframe = pd.DataFrame(columns = my_columns) for symbol_chunk in symbol_chunks: api_url = f'https://api.iex.cloud/v1/data/core/quote/{symbol_chunk}' response = requests.get(api_url, params=params) data = pd.DataFrame(response.json()) data = data.set_index('symbol') #display(data) <------------------ At this point everything displays fine. for symbol in symbol_chunk.split(','): new_row = pd.Series([symbol, data.loc[symbol]['latestPrice'], data.loc[symbol]['marketCap'], 'N/A'], index=my_columns) final_dataframe = pd.concat([final_dataframe, new_row], ignore_index=True) ''' The following section works well, although I get a warning for Deprecation on the append() final_dataframe = final_dataframe.append( pd.Series([symbol, data.loc[symbol]['latestPrice'], data.loc[symbol]['marketCap'], 'N/A'], index = my_columns), ignore_index = True) ''' display(final_dataframe)
Output:Ticker Price Market Capitalization Number Of Shares to Buy 0
0 NaN NaN NaN NaN A
1 NaN NaN NaN NaN 119.35
2 NaN NaN NaN NaN 35253103878
3 NaN NaN NaN NaN N/A
... ... ... ... ... ...
2015 NaN NaN NaN NaN N/A
2016 NaN NaN NaN NaN ZTS
2017 NaN NaN NaN NaN 171.0
2018 NaN NaN NaN NaN 79021175940