I am not a good python coder (beginner) so apologies if the code isn't up to pythonista's snuff! Bit of a weird situation and I can not figure this out. I have been wracking my brains trying to fix it out but can't seem to be able to. I am sure it's a really simple fix I am overlooking...
The "allData" Dataframe is pulling data from an SQL database. From that I am extracing a number of records and appending to the "managerListImput" empty dataframe. I am iterating for a number of records specified and looking up the details for each one before appending. It works in Jupyter notes and I get the desired output but when I run it in IDLE or Visual Studio Code I get an empty dataframe. Very frustrating. Hopefully someon can solve it.... Thanks in advance
Here's the code:
def selected():
managerReturns = pd.DataFrame(columns = ['hName','Returns'])
managerCount = int(input("how many MANAGERS do you want to use? Enter a quantity: "))
i=0
while i < managerCount:
managerListData = allData[['hID','hName','Min_Date','Max_Date']]
managerListFind = input('Enter partial or whole MANAGER name: ')
managerList = managerListData[managerListData['hName'].str.contains(managerListFind, case=False)]
managerList = managerList.drop_duplicates(subset=['hID'])
managerList = managerList.set_index('hID')
print(managerList)
managerID = input('Pick/Type in an MANAGER list ID ("hID") From the List Above: ')
managerName = managerListData.query('hID ==' str(managerID))['hName']
managerName = managerName.iloc[0] # otherwise you get a list of the same names
manager = allData.query('hID == @managerID')
manager = manager.filter(['hName','Returns'])
managerReturns = managerReturns.append(manager)
i = 1
managerReturns = managerReturns.groupby([managerReturns.index, 'hName'])['Returns'].mean().unstack()
return managerReturns
test31 = selected()
print(test31)
Output in IDLE or Visual Studio Code:
Empty DataFrame
Columns: []
Index: []
Output (in Jupyter Notes) i.e. the output I want!::
Date Manager1 Manager2
4/1/2010 NaN 0.1459
5/1/2010 NaN 0.0049
6/1/2010 NaN -0.0206
7/1/2010 NaN -0.0416
8/1/2010 NaN 0.4537
... ... ...
7/1/2021 0.0056 0.0047
8/1/2021 0.0185 -0.0086
9/1/2021 -0.0269 0.0207
10/1/2021 0.0261 -0.0080
11/1/2021 -0.0256 0.0228
CodePudding user response:
The solution was simple: the managerID
has to be turned into an integer, so I added this:
managerID = int(managerID)
I guess Jupyter Notes is smart enough to recognize it as a number.