正在寻找一种方便的方法,将数据帧的某些行存储到新的数据帧中(如果该行与某些外部条件匹配)。在
我有一个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”。在
所以,简而言之,我知道有什么不对劲,但不是什么。我试图存储引发异常的行,但我怀疑我构建数据帧的方式给我带来了问题(我认为构建字典列表很奇怪,但它让我最接近所需的行为,并在其他地方得到了建议)。在
如何将行存储到新的数据帧中(通常)?提前感谢您的帮助!在
好吧,你可以使用切片技术,你可以切片你需要的行,并把它放到另一个数据帧中。语法如下所示
Df_new=Df_旧.iloc['starting_name_of_row':'结束_name_of_row']
相关问题 更多 >
编程相关推荐