从现有的数据帧python pandas中为新的Dataframe提取行

2024-09-30 04:37:05 发布

您现在位置:Python中文网/ 问答频道 /正文

正在寻找一种方便的方法,将数据帧的某些行存储到新的数据帧中(如果该行与某些外部条件匹配)。在

我有一个dataframe(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”时,它会显示“empty DataFrame”。在

所以,简而言之,我知道有什么不对劲,但不是什么。我试图存储引发异常的行,但我怀疑我构建数据帧的方式给我带来了问题(我认为构建字典列表很奇怪,但它让我最接近所需的行为,并在其他地方得到了建议)。在

如何将行存储到新的数据帧中(通常)?提前感谢您的帮助!在


Tags: 数据方法dataframedfdateindex条件row

热门问题