2016-12-16 10 views
0

は、奇妙に書式が設定されたExcelデータを処理し、CSVに文字列形式で書き込むことに問題があります。私のサンプルデータでは、私がインポートしているエクセルテーブルにはカラム( 'Item_Number')があり、セル内の奇妙なデータは= "0001"、= "00201"、2002AA、1003Bのように見えます。Python 3 CSV形式の列に書かれた文字列

私がcsvに出力しようとすると、結果は1、201、2002AA、1003Bのようになります。 Excelに出力しようとすると、結果は正しい(0001、00201、2002AA、1003B)。

すべてのdtypeはオブジェクトです。私の.to_csv()コマンドにパラメータがありませんか? 「=」を置き換えるの

df = pd.read_excel(filename,sheetname='Sheet1', converters= {'Item_Number':str}) 
df.to_csv('Test_csv.csv') 
df.to_excel('Test_excel.xlsx') 

しようとした別のイテレーションと「」」が、応答がない。

df.Item_Number.str.replace('=','') 

CSVの書式文字列を維持する方法がある場合は、現在のExcel出力が、好奇心を使用。ありがとう:)

+2

私にとっては完璧です。ファイルをどのようにテストしますか? 'df = pd.read_csv( 'Test_csv.csv')'またはテキストエディタで? – jezrael

+0

私はcsvとしてExcelでそれを開いていました。もう一度テストします。 –

+0

CSV形式でExcelを開いていました。 試行: df = pd.Series([0001 = "0001"、= "00201"、2002AA、1003B])astype(str) この形式は実行されません。 read.excel()関数はExcelスプレッドシートから= "0​​001"を解釈し、正しくエクスポートできますが、csvでは正しくエクスポートできないようです。明確にするために、= "0001"がセルにあります。 –

答えて

0

= "0001"のようなデータを持つPython 3 PandasでExcelスプレッドシートを開くCSVは "1"に戻します。既知の問題(上記の私のコメントから)。私は追加する必要がある書式を維持するために=」 "バックこのようなデータへ:

df['Item_Number'] = '="' + df['Item_Number'] + '"' 

Excelは引用符なしでCSVファイルショー0001を開き、等号がありますようにクリーンなバージョンがあるかどうかわかりません。