熊猫将数据帧转换为Utf-8

Chr*_*son 3 python utf-8 pandas

我有一个df由100行和24列组成的。列类型是字符串。当我尝试将数据框追加到KDB时,抛出了以下错误

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

这是我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
Run Code Online (Sandbox Code Playgroud)

我的问题是,有没有一种简单的方法可以将我转换df为utf-8格式?

可能像 df = df.encode('utf-8')

谢谢

Blo*_*Pig 5

这取决于您如何输出数据。如果您只是使用csv文件,然后将其导入到KDB,则可以轻松地指定该文件:

df.to_csv('df_output.csv', encoding='utf-8')
Run Code Online (Sandbox Code Playgroud)

或者,您可以在将数据最初导入到Pandas时使用相同的语法来设置编码。

如果您使用SQLAlchemy或类似方法直接连接到KDB,则应尝试在连接本身中指定它-请参见此问题:在MySQL中使用pandas方法to_sql时,另一个UnicodeEncodeError