I have this bit of code which is working beautifully...
from pandas_datareader import data as pdr
import pandas as pd
myStartDate = '2020-12-15' # (Format: Year-Month-Day)
myEndDate = '2020-12-31' # (Format: Year-Month-Day)
myTickers = 'TSLA'
myData = pdr.get_data_yahoo(myTickers, myStartDate, myEndDate)
pd.set_option('display.max_columns', None)
pd.set_option('display.width', 200)
print(myData.head())
The result is:
High Low Open Close Volume Adj Close
Date
20-12-15 646.90 623.79 643.28 633.25 45223600 633.250000
20-12-16 632.50 605.00 628.22 622.77 42095800 622.770020
20-12-17 658.82 619.50 628.19 655.90 56270100 655.900024
20-12-18 695.00 628.53 668.90 695.00 22212620 695.000000
20-12-21 668.50 646.07 666.23 649.85 58045300 649.859985
Then, I have this:
myData['Some New Column Name'] = myData['High'] - myData['Low']
print(myData.head())
And it works beautifully and the result is this:
High Low Open Close Volume Adj Close Some New Column Name
Date
20-12-15 646.90 623.79 643.28 633.25 45223600 633.25 23.10
20-12-16 632.50 605.00 628.22 622.77 42095800 622.77 27.50
20-12-17 658.82 619.50 628.19 655.90 56270100 655.90 39.32
20-12-18 695.00 628.53 668.90 695.00 22212620 695.00 66.46
20-12-21 668.50 646.07 666.23 649.85 58045300 649.85 22.42
I want to modify the code to do multiple "myTickers" like this:
from pandas_datareader import data as pdr
import pandas as pd
myStartDate = '2020-12-15' # (Format: Year-Month-Day)
myEndDate = '2020-12-31' # (Format: Year-Month-Day)
myTickers = ['TSLA', 'SQ']
myData = pdr.get_data_yahoo(myTickers, myStartDate, myEndDate)
pd.set_option('display.max_columns', None)
pd.set_option('display.width', 200)
print(myData.head())
This works beautifully and the result is:
Attributes Adj Close Close High Low Open Volume
Symbols TSLA SQ TSLA SQ TSLA SQ TSLA SQ TSLA SQ TSLA SQ
Date
12/15/20 633.25 219.99 633.25 219.99 646.90 221.72 623.80 216.73 643.28 218.41 45223600 5713600
12/16/20 622.77 227.08 622.77 227.08 632.50 227.96 605.00 220.03 628.23 223.86 42095800 8216500
12/17/20 655.90 230.74 655.90 230.74 658.82 237.09 619.50 227.70 628.19 230.00 56270100 10440100
12/18/20 695.00 235.45 695.00 235.45 695.00 236.37 628.54 231.10 668.90 235.00 22212620 8099500
12/21/20 649.86 233.50 649.86 233.50 668.50 241.85 646.07 232.26 666.24 236.09 58045300 1115540
Similar to the first example, I want to do: (Tesla's high) - (Tesla's low) = (Some New Column Name) and (SQ's high) - (SQ's low) = (Some New Column Name) but I am not very experienced with pandas on how to do this. My understanding is that this is a multiindex or (hierarchical index) pandas dataframe. Reading some documentation, I thought something like this might work:
myData['Some New Column Name']['TSLA', 'SQ'] = myData['High'] - myData['Low']
or
myData[['Some New Column Name'],['TSLA', 'SQ']] = myData['High'] - myData['Low']
But this doesn't work... I feel like maybe it is close?
To be clear, I want something like this:
Attributes Adj Close Close ... Open Volume Some New Col
Symbols TSLA SQ TSLA SQ ... TSLA SQ TSLA SQ TSLA SQ
Date ...
12/15/20 633.25 219.99 633.25 219.99 ... 643.28 218.41 45223600 5713600 23.10 4.99
12/16/20 622.77 227.08 622.77 227.08 ... 628.23 223.86 42095800 8216500 27.50 7.93
12/17/20 655.90 230.74 655.90 230.74 ... 628.19 230.00 56270100 1044010 39.32 9.39
12/18/20 695.00 235.45 695.00 235.45 ... 668.90 235.00 22212620 8099500 66.46 5.27
12/21/20 649.86 233.50 649.86 233.50 ... 666.24 236.09 58045300 1115540 22.43 9.59
I just tried:
myNewData = myData['High'] - myData['Low']
and the result is this:
Symbols TSLA SQ
Date
2020-12-15 23.100037 4.990005
2020-12-16 27.500000 7.930008
2020-12-17 39.320007 9.389999
2020-12-18 66.460022 5.269989
2020-12-21 22.429993 9.590012
I can probably work with this... But... It would be nice to append this to myData in some clean way instead