나는 pandas를 사용하여 excel에서 만든 csv 파일을로드하고 분석 한 다음 csv 파일에 결과를 저장합니다. 나는 팬더 to_csv와 from_csv 메소드가 \ r과 같은 특수 문자를 처리 할 수있는 것처럼 보이지 않지만 오류도 발생시키지 않는다는 것을 알았습니다. 내가 여기에 어떤 인코딩을 지정하고 있지 않다 때문에CSV 파일을 쓰거나 읽을 때 특수 문자 ( r) 문제
In [7]: import pandas as pd
In [8]: data = {
'A': ['one', 'two', 'three'],
'B': ['four', 'five', 'six']
}
In [9]: df = pd.DataFrame(data)
In [10]: df
Out[10]:
A B
0 one four
1 two five
2 three six
In [11]: df.loc[1,'A'] = 't' + '\r' + 'o'
In [12]: df
Out[12]:
A B
0 one four
1 t\ro five
2 three six
In [13]: df.to_csv("my_df.csv")
In [14]: df2 = pd.DataFrame.from_csv("my_df.csv")
In [15]: df2
Out[15]:
A B
0 one four
1 t NaN
o five NaN
2 three six
나는 ASCII를 사용하지만 인코딩을 지정하는 경우도 = 'UTF-8'쓰기와 읽기가 나는 같은 결과를 얻을 가정입니다.
행/열이 손상되지 않거나 예기치 않은 일이 발생하도록 강력한 csv 쓰기 및 읽기 스크립트를 작성하려면 어떻게해야합니까? 유일한 해결책은 csv에 쓰기 전에 모든 문자열을 확인하고 '정리'하는 것입니다. 그런 다음 가장 쉬운 방법은 무엇입니까?
CSV가 다소 야생 형식입니다 : 당신이 다른 것을 찾고 있다면, 당신은
read_csv
에lineterminator
인수를 시도 할 수 있습니다 많은 방언으로 RFC 4180은이를 정의하려고 시도합니다. 그곳에. 캐리지 리턴 ('\ r')은 TEXTDATA 블록 내부에서 허용되지 않습니다. 그것은 라인 (레코드) delimeter의 일부입니다. –