以下のスクリーンショットに示すように、Excelファイルには2つの列があります。私は100.54000000000001から100.540のような数値フィールドの精度を下げようとしています。数値は文字列として格納されますので、floatに変換するとデータフレーム列:数字のみをintに変換し、文字列として残す単語
df['Unnamed: 5'] = pd.to_numeric(df['Unnamed: 5'], errors='coerce')
文字列をNaNに変換します。誰も私の問題を助けることができますか?私は整数だけをintに変換しようとしており、単語は文字列のままでなければなりません。
EDIT:それらを丸めた後、戻って文字列に数値を変換するために許容可能です。私のコードは次の通りです:
>>> import pandas as pd
>>> import numpy as np
>>> xl = pd.ExcelFile("WSJ_template.xls")
>>> xl.sheet_names
[u'losers', u'winners']
>>> dfw = xl.parse("winners")
>>> dfw.head()
<output>
>>> dfw = dfw.apply(pd.to_numeric, errors='coerce').combine_first(dfw)
>>> dfw = dfw.replace(np.nan, '', regex=True)
>>> dfw
<output>
:
そして、我々の結果データフレームの丸められた後にデータがstrに変換されることに満足していますか? – RagingRoosevelt
はい、それもうまくいくでしょう。ありがとう – frisbeee
はい、それも動作します。 私はコードを作成し、彼のSQLコードに組み込むためにそれを人に送りましたが、それは彼のためには機能しませんでした。私はジュピターを使用し、彼は他のものを使用します。 XL = pd.ExcelFile( "WSJ_template.xls")NP としてPDインポートnumpyのよう インポートパンダ xl.sheet_names [u'losers'、u'winners'] DFW = XLを次のように自分のコードです。 (dfw) dfw = dfw.replace(np.nan、 ''、regex = "dfw"); dfw.headerは、真) dfw ありがとう – frisbeee