2017-09-05 8 views
0

私はExcelファイルを持っていて、列の1行に文字列値である値 "9-3"を持っています。 Excelのファイルをダブルチェックして、Dateの代わりにPlain stringという列データ型を持つようにしました。しかし、まだ私はread_excelを使用し、それをデータフレームに変換すると、値は文字列 "9-3"ではなく2017-09-03 00:00:00として表示されます。列の値は文字列ではなく日付として読み取られます - パンダ

table = pd.read_excel('ManualProfitAdjustmentUpdates.xlsx' , header=0, converters={'Model': str}) 

なぜパンダ私はstrとコンバータを設定しても、文字列として値を処理されていない上の任意のアイデア:ここに は、私はExcelファイルを読み込む方法ですか?

+0

Excelファイルのスニペットを共有できますか?理想的には、列ヘッダーとデータの最初の行です。データがプライベートである場合、ヘッダー行だけがOKになります。 –

+0

(コメントの理由は複製するだけでなく、 "コンバーター"定義が正しく定義されているかどうかをチェックすることです)。 –

答えて

2

Excelファイルのプレーンストリング設定は、Excelでのデータの表示方法にのみ影響します。 コンバータのstr設定は、取得するデータをどのように処理するかにのみ影響します。

Excelファイルでデータを文字列として返すようにするには、セルの最初の文字をアポストロフィにする必要があります。 "9-3"を "'9-3"に変更してください。

2

問題はExcelで発生する可能性があります。あなたが話している特異値だけではなく、列全体がテキストとして保存されていることを確認してください。 Excelがいつでもデータとして保存されていれば、何が表示されていてもデータ型が変更されても、そのセルに1年保存されます。 Pandasは列全体を1つのデータ型として読み込むため、9〜3を超える日付が変換されます。何年も経なければ日付を文字列に変更するのは難しいことがあります。それがあなたが好きな正しいフォーマットになったら、csvとしてExcelシートを保存し、次にpandas pd.read_csv()を使用する方が良いかもしれません。私はテストが

import pandas as pd 
df = pd.read_excel('book1.xlsx',header=0) 
print(df) 

を実行し、正しく私のデータフレームを戻った後、ブックをエクセル "book1.xlsx"

9-3 1 Hello 
12-1 2 World 
1-8 3 Test 

ました。したがって、私はそれが優れていると信じるように導かれています。申し訳ありませんが最高の答えではありませんが、私はそれがパンダのエラーだとは思わないです。

関連する問題