如果行匹配某些外部条件,正在寻找一种方便的方法将数据帧的某些行存储到新的数据帧中。
我有一个数据框(df),其中包含我针对内部数据库运行的记录。有时查询有效,有时它不起作用。我希望存储导致异常的行。新数据框应具有与原始数据帧相同的结构。我整个上午都在测试不同的解决方案,但似乎没有什么工作。我当前的代码看起来像这样:
cols=['recordID','linkID','date']
dfNew = pd.DataFrame(columns = cols)
for index, row in df.iterrows():
try:
updateStatement = """
EXEC dbo.storedProc
@recordID = {0},
@linkID = {1},
@date = '{2}',
""".format(row.recordID, row.LinkID, row.date)
cursor.execute(updateStatement)
except Exception as e:
lst = ({'recordID':row.recordID,'linkID':row.linkID,'date':row.date})
dfexcept = dfexcept.append(lst, ignore_index=True)
在我目前的情况下,它为我提供了一个包含值的表格(例如' print()'和' len()'返回预期结果)但功能特定到Dataframes(merge(),. head())不起作用,当被要求返回' dfexcept'它说空了DataFrame'。
所以,简而言之,我知道有些事情是错的,但不是什么。我试图存储抛出异常的行,但我怀疑我构建DataFrame的方式给了我一些问题(我认为构建字典列表很奇怪,但它让我最接近所需的行为和在别处建议。)
如何将行存储到新的DataFrame中(通常)?在此先感谢您的帮助!
答案 0 :(得分:0)
您可以使用切片技术,您可以在其中切片所需的行并将其放入另一个数据帧中。语法如下所示
Df_new = Df_old.iloc ['starting_name_of_row':'ending_name_of_row']