SQL 检索:IDLE 中的空 Dataframe 或 Visual Studio 代码但在 Jupyter Notes 中填充了 Dataframe
SQL retrieval: Empty Dataframe in IDLE or Visual Studio Code but populated Dataframe in Jupyter Notes
我不是一个好的 python 编码员(初学者),如果代码不符合 pythonista 的要求,我深表歉意!
有点奇怪的情况,我无法弄清楚。我一直在绞尽脑汁试图解决它,但似乎无法解决。我确信这是我忽略的一个非常简单的修复...
“allData”数据框正在从 SQL 数据库中提取数据。从中我提取了一些记录并附加到“managerListImput”空数据框。我正在迭代一些指定的记录,并在追加之前查找每条记录的详细信息。它在 Jupyter notes 中工作,我得到了想要的输出,但是当我在 IDLE 或 Visual Studio 代码中 运行 它时,我得到一个空数据框。非常令人沮丧。希望有人能解决它......
提前致谢
代码如下:
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)
空闲时输出或Visual Studio代码:
Empty DataFrame
Columns: []
Index: []
输出(在 Jupyter Notes 中)即我想要的输出!::
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
解决方案很简单:managerID
必须变成一个整数,所以我添加了这个:
managerID = int(managerID)
我想 Jupyter Notes 足够聪明,可以将其识别为数字。
我不是一个好的 python 编码员(初学者),如果代码不符合 pythonista 的要求,我深表歉意! 有点奇怪的情况,我无法弄清楚。我一直在绞尽脑汁试图解决它,但似乎无法解决。我确信这是我忽略的一个非常简单的修复...
“allData”数据框正在从 SQL 数据库中提取数据。从中我提取了一些记录并附加到“managerListImput”空数据框。我正在迭代一些指定的记录,并在追加之前查找每条记录的详细信息。它在 Jupyter notes 中工作,我得到了想要的输出,但是当我在 IDLE 或 Visual Studio 代码中 运行 它时,我得到一个空数据框。非常令人沮丧。希望有人能解决它...... 提前致谢
代码如下:
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)
空闲时输出或Visual Studio代码:
Empty DataFrame
Columns: []
Index: []
输出(在 Jupyter Notes 中)即我想要的输出!::
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
解决方案很简单:managerID
必须变成一个整数,所以我添加了这个:
managerID = int(managerID)
我想 Jupyter Notes 足够聪明,可以将其识别为数字。