2017-01-09 17 views
1

私はパンダのデータフレームの形があります(455698、62)。私はcsvファイルとして保存し、後でもう一度pandasをロードします。今の私はこれを実行します。csvとして保存するとデータフレームが破損する

df.to_csv("/path/to/file.csv",index=False,sep="\\", encoding='utf-8') #saving 
df=pd.read_csv("/path/to/file.csv",delimiter="\\",encoding ='utf-8') #loading 

を、私は形状のデータフレーム(455700、62)を得る:2本の以上のラインを?私が細かくチェックすると(各列のすべてのユニークな値を見ると)、プロセスの列の値が変更されていることがわかりました。

dtype = "object"を強制する複数の区切り文字を試しましたが、バグの場所を特定できません。私は何を試すべきですか?

+0

あなたはこれを再現した生データをポストする必要があります、また、あなたが余分な列が何であるかを見つけることができます。最初の列を 'first_cols = df.columns'として保存し、次にdfをロードして' second_cols = other_df.columns'を比較してから 'first_cols.difference(second_cols)'を実行します。 – EdChum

+0

データの非常に小さな一見アイデアを持っていることは素晴らしい... – fedepad

+0

余分な行ではなく、余分な列です。私は生データを投稿できるとは思えません。非常に大規模で、問題がどこにあるのか分かりません(IMOはこの問題を引き起こすのは1行か2行だけです)。 – CoMartel

答えて

2

文字列の一部に改行文字(\n)が含まれている可能性はありますか?

この場合、私はあなたのCSVファイルを保存する際に引用使用することをお勧め:

import csv 

df.to_csv("/path/to/file.csv",index=False,sep="\\", encoding='utf-8', quoting=csv.QUOTE_NONNUMERIC) 
... 
+0

私は試してみました!ありがとうございます、しかしあなたは説明できますか?私はパンダが既にデフォルトで値を引用していましたが? – CoMartel

+0

@HarryPotfleur、実際にはちょっと混乱しています - それを再現しようとしましたが、私はパンダ(バージョン0.19.2)を使ってそれを再現できませんでした – MaxU

+0

私は同じバージョンを持っていて動作します – CoMartel

関連する問題