2017-06-15 24 views
0

行がいくつかの外部基準に一致する場合、データフレームの特定の行を新しいデータフレームに保存する便利な方法を探します。既存のデータフレームから新しいデータフレームの行を引き出すpython pandas

私は内部データベースに対して実行しているレコードを含むデータフレーム(df)を持っています。場合によってはクエリが機能し、ときどきクエリが機能しないことがあります。私はストアに例外を引き起こす行が欲しいです。新しいデータフレームは、元のデータフレームと同じ構造を持つ必要があります。私は午前中にさまざまなソリューションをテストしてきましたが、何も動作していないようです。それはしかし、特定の機能(たとえば「印刷()」と「lenは()」の戻り予想される結果としての機能)私に値を持つテーブルを与え、私の現在の状況では

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) 

:私の現在のコードは次のようになりますデータフレーム(merge()、.head())は機能しません。また、 'dfexcept'を返すように要求されたときは、 '空のDataFrame'と表示されます。

つまり、要するに、私は何かが間違っていることを知っていますが、何ではないのです。私は例外をスローする行を格納しようとしていますが、私はDataFrameを構築している方法が私に問題を与えていると思う(私は辞書リストの構築は奇妙だと思ったが、 。

行を新しいDataFrame(通常)に保存する方法を教えてください。助けを前にありがとう!

答えて

0

スライシング技術を使用して、必要な行をスライスして別のデータフレームに配置することができます。構文は以下に示す

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

関連する問題