如何解决从nseindia.com提取数据后如何为缺失的数据添加空白
NIFTY option chain for expiry: 01-Oct-2020
上面的图片总结了我面临的问题。提取的json文件在CE端13050处没有数据。我没有数据可以,但是我仍然希望在罢工列中看到罢工行,并在其对应的一侧添加空白行或0值。 JSON文件包含所有可能的到期日期的数据。 JSON data file if needed:
示例代码(不适用于你们):
r = session.get(url,headers = url_headers).json()
with open('oidata.json','w') as files:
files.write(json.dumps(r,indent = 4,sort_keys= True ))# writing data in json file jsut for for reference
expiry_dates = r['records']['expiryDates']
# storing ONLY the data for given expiry
#Assume that we have at least one of the values for user or default expiry
if user_expiry in expiry_dates:
print('Using user Expiry: ',user_expiry)
ce_values = [items['CE'] for items in r['records']['data'] if 'CE' in items and user_expiry in items['CE']['expiryDate']]
pe_values = [items['PE'] for items in r['records']['data'] if 'PE' in items and user_expiry in items['PE']['expiryDate']]
else:
print('Using Default Expiry: ',default_expiry)
ce_values = [items['CE'] for items in r['records']['data'] if 'CE' in items and default_expiry in items['CE']['expiryDate']]
pe_values = [items['PE'] for items in r['records']['data'] if 'PE' in items and default_expiry in items['PE']['expiryDate']]
因此,如何为缺失的数据添加空白行并对齐CE和PE的行权,这样我只能有1个STRIKE列?
解决方法
假设您将ce_values
和pe_values
分为两个数据框,则可以按以下步骤合并strikePrice
上的两个数据框
ce=pd.DataFrame(ce_values)
pe=pd.DataFrame(pe_values)
df=ce.merge(pe,on='strikePrice',how='outer',suffixes=["_ce","_pe"])
这会将“ strikePrice”上的数据框与缺少ce或pe值的空行对齐。
让我知道这是否是您所期望的。