2017-06-15 58 views
0

尋找一種方便的方法,可以將某個數據幀的某些行存儲到新的數據框中,前提是該行與某些外部條件匹配。從現有數據框中提取新數據幀的行python pandas

我有一個數據幀(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) 

在我目前的情況,這讓我有值的表(功能,如「打印()」和「LEN()」返回預期的結果),但具體功能到數據框(merge(),.head())不起作用,並且當被要求返回'dfexcept'時它說'空的DataFrame'。

所以,總之,我知道一些錯誤,但不是什麼。我試圖存儲引發異常的行,但我懷疑我構建DataFrame的方式給我的問題(我認爲構建字典列表很奇怪,但它使我接近期望的行爲並在其他地方提出) 。

如何將行存儲到新的DataFrame中(通常情況下)?先謝謝您的幫助!

回答

0

那麼你可以使用切片技術,在那裏你可以切片你需要的行,並把它放在另一個數據幀。語法如下所示

Df_new = Df_old.iloc ['starting_name_of_row':'ending_name_of_row']

相關問題