2017-07-31 3 views
1

私は012行目と24行からなるdfを持っています。列の型は文字列です。データフレームをKDBに追加しようとすると、次のエラーが表示されるパンダはデータフレームをUtf-8に変換します

UnicodeEncodeError: 'ascii' codec can't encode character '\xd3' in position 9: ordinal not in range(128) 

ここでは、私のdfの最初の行の例を示します。

     AnnouncementDate AuctionDate BBT \ 
_id 
00000067 2012-12-11T00:00:00.000+00:00   NaN FHLB 

      CouponDividendRate DaysToSettle \ 
_id 
00000067     0.61   1 

             Description \ 
_id 
00000067       FHLB 0.61 12/28/16 

        FirstSettlementDate   ISN IsAgency IsWhenIssued \ 
_id 
00000067 2012-12-28T00:00:00.000+00:00 US313381K796  True  False 


      ... OnTheRunTreasury OperationalIndicator \ 
_id  ... 
00000067 ...    NaN    False 


      OriginalAmountOfPrincipal OriginalMaturityDate \ 
_id 
00000067     13000000.0     NaN 


      PrincipalAmountOutstanding  SCSP  SMCP \ 
_id 
00000067       0.0 313381K79 76000000 

      SecurityTypeLevel1 SecurityTypeLevel2 TCK 
_id 
00000067   US-DOMESTIC    NaN NaN 

私の質問は、UTF-8形式に私のdfを変換する簡単な方法はありますか?それはあなたがデータを出力しているかに依存

おそらく何か

df = df.encode('utf-8')などのおかげ

+1

を、どのように?これを解決する最も簡単な方法は、最初から正しい値を送信することです。また、df.head()。to_dict()で小さなサンプルを共有してください。 –

+0

dfはjsonオブジェクトから生成されます。これは自動的にjson_normalizeを使って行われます。 –

+0

json_normalizeを使用する前にhttps://stackoverflow.com/questions/33699343/convert-every-dictionary-value-to-utf-8-dictionary-comprehensionを試してみるか、https://pandas.pydata.org/pandas- docs/stable/generated/pandas.read_json.htmlとエンコードをutf8に設定 – MedAli

答えて

1

。あなたは、単にあなたがしてKDBにインポートするCSVファイルを、使用している場合は、簡単にそれを指定することができます。

df.to_csv('df_output.csv', encoding='utf-8') 

それとも、あなたはもともとパンダにデータをインポートするときに、同じ構文を使用して、エンコーディングを設定することができますが。 -

あなたはSQLAlchemyのか、似たようなを使用してKDBに直接接続している場合は、接続自体でこれを指定してみてください、この質問を参照してください。あなたがデータフレームを埋め、いくつかの時点でAnother UnicodeEncodeError when using pandas method to_sql with MySQL

関連する問題