Pandas df.to _csvpxfile.csv" encode="utf-8")은 여전히 빼기 기호에 대한 휴지통 문자를 제공합니다.
Pandas의 to_csv(... 등)와 관련하여 Python 2 제한 사항에 대해 읽은 적이 있습니다.제가 쳤나요?나는 파이썬 2.7.3에 있습니다.
이렇게 하면 문자열에 나타나는 ≥ 및 -의 휴지통 문자가 표시됩니다.그것을 제외하고 수출은 완벽합니다.
df.to_csv("file.csv", encoding="utf-8")
해결 방법이 있습니까?
df.head()는 다음과 같습니다.
demography Adults ≥49 yrs Adults 18−49 yrs at high risk|| \
state
Alabama 32.7 38.6
Alaska 31.2 33.2
Arizona 22.9 38.8
Arkansas 31.2 34.0
California 29.8 38.8
csv 출력은 다음과 같습니다.
state, Adults ≥49 yrs, Adults 18−49 yrs at high risk||
0, Alabama, 32.7, 38.6
1, Alaska, 31.2, 33.2
2, Arizona, 22.9, 38.8
3, Arkansas,31.2, 34
4, California,29.8, 38.8
전체 코드는 다음과 같습니다.
import pandas
import xlrd
import csv
import json
df = pandas.DataFrame()
dy = pandas.DataFrame()
# first merge all this xls together
workbook = xlrd.open_workbook('csv_merger/vaccoverage.xls')
worksheets = workbook.sheet_names()
for i in range(3,len(worksheets)):
dy = pandas.io.excel.read_excel(workbook, i, engine='xlrd', index=None)
i = i+1
df = df.append(dy)
df.index.name = "index"
df.columns = ['demography', 'area','state', 'month', 'rate', 'moe']
#Then just grab month = 'May'
may_mask = df['month'] == "May"
may_df = (df[may_mask])
#then delete some columns we dont need
may_df = may_df.drop('area', 1)
may_df = may_df.drop('month', 1)
may_df = may_df.drop('moe', 1)
print may_df.dtypes #uh oh, it sees 'rate' as type 'object', not 'float'. Better change that.
may_df = may_df.convert_objects('rate', convert_numeric=True)
print may_df.dtypes #that's better
res = may_df.pivot_table('rate', 'state', 'demography')
print res.head()
#and this is going to spit out an array of Objects, each Object a state containing its demographics
res.reset_index().to_json("thejson.json", orient='records')
#and a .csv for good measure
res.reset_index().to_csv("thecsv.csv", orient='records', encoding="utf-8")
"불량" 출력은 UTF-8로 CP1252로 표시됩니다.
Windows에서 많은 편집자는 파일 시작 부분에 BOM(바이트 순서 표시) 문자가 없으면 UTF-8 대신 기본 ANSI 인코딩(US Windows의 경우 CP1252)을 가정합니다.BOM은 UTF-8 인코딩에 의미가 없지만 UTF-8 인코딩의 존재는 일부 프로그램에 대한 서명 역할을 합니다.예를 들어 마이크로소프트 Office의 Excel에는 윈도우즈 OS가 아닌 OS에서도 이 기능이 필요합니다.시도:
df.to_csv('file.csv',encoding='utf-8-sig')
해당 인코더가 BOM을 추가합니다.
encoding='utf-8-sig
저한테는 안 통합니다.Excel은 이제 특수 문자를 잘 읽지만 Tab 구분 기호는 사라졌습니다!하지만,encoding='utf-16
는 올바르게 작동합니다. 특수 문자 OK 및 Tab 구분 기호가 작동합니다.이것이 저를 위한 해결책입니다.
언급URL : https://stackoverflow.com/questions/25788037/pandas-df-to-csvfile-csv-encode-utf-8-still-gives-trash-characters-for-min
'programing' 카테고리의 다른 글
우체부: 필수 요청 부품 'file'이(가) 없습니다. (0) | 2023.07.21 |
---|---|
LIKE(SQL)로 테이블 결합 (0) | 2023.07.21 |
오라클의 varchar2 열에서 악센트가 있는 문자를 바꾸는 방법 (0) | 2023.07.21 |
SQL 무시 대/소문자 그룹화 기준? (오라클) (0) | 2023.07.21 |
스프링 받침대 템플릿 읽기 시간나가. (0) | 2023.07.21 |