300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > python – Pandas df.to_csv(“file.csv”encode =“utf-8”)仍为减号提供垃圾字符

python – Pandas df.to_csv(“file.csv”encode =“utf-8”)仍为减号提供垃圾字符

时间:2022-11-28 05:25:03

相关推荐

python – Pandas df.to_csv(“file.csv”encode =“utf-8”)仍为减号提供垃圾字符

我已经阅读了关于Pandas’to_csv(……等等)的Python 2限制的内容.我打了吗?我在使用Python 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.61, Alaska, 31.2, 33.22, Arizona, 22.9, 38.83, Arkansas,31.2, 344, California,29.8, 38.8

整个代码是这样的:

import pandasimport xlrdimport csvimport jsondf = pandas.DataFrame()dy = pandas.DataFrame()# first merge all this xls togetherworkbook = 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 needmay_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 betterres = 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 demographicsres.reset_index().to_json("thejson.json", orient="records")#and a .csv for good measureres.reset_index().to_csv("thecsv.csv", orient="records", encoding="utf-8")解决方法:

您的“坏”输出为UTF-8,显示为CP1252.

在Windows上,如果文件开头没有字节顺序标记(BOM)字符,许多编辑器会采用默认的ANSI编码(美国Windows上的CP1252)而不是UTF-8.虽然BOM对UTF-8编码毫无意义,但其UTF-8编码状态可作为某些程序的签名.例如,即使在非Windows操作系统上,Microsoft Office的Excel也需要它.尝试:

df.to_csv("file.csv",encoding="utf-8-sig")

该编码器将添加BOM.

来源:/content-1-485351.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。