Pandas将dataframe转换为Utf-8

2024-06-01 13:34:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个由100行24列组成的df。列类型为string。当我试图将数据帧附加到KDB时,它会抛出以下错误

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

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

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

谢谢


Tags: 数据inidfalse类型dfstring错误
1条回答
网友
1楼 · 发布于 2024-06-01 13:34:41

这取决于你如何输出数据。如果您只是使用csv文件,然后将其导入KDB,那么您可以很容易地指定:

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

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

如果您使用SQLAlchemy或类似的方法直接连接到KDB,那么应该尝试在连接本身中指定它-请参见以下问题:Another UnicodeEncodeError when using pandas method to_sql with MySQL

相关问题 更多 >