列名を持つデータを含むcsv
ファイルがあります。
3番目の問題 "IAS_lissé"に問題があり、pd.read_csv()
メソッドおよびとして返されます。
そのキャラクターは何ですか?
flaskアプリケーションでバグを生成しているため、ファイルを変更せずに他の方法でその列を読み取る方法はありますか?
In [1]: import pandas as pd
In [2]: pd.read_csv("Openhealth_S-Grippal.csv",delimiter=";").columns
Out[2]: Index([u'PERIODE', u'IAS_brut', u'IAS_liss�', u'Incidence_Sentinelles'], dtype='object')
Read_csvのencoding
パラメーターを変更できます。pandas doc here を参照してください。また、python標準エンコード ここ です。
あなたの例では、utf-8
エンコード(言語がフランス語であると仮定)。
df = pd.read_csv("Openhealth_S-Grippal.csv", delimiter=";", encoding='utf-8')
サンプル出力を示す例を次に示します。問題の文字を使用して、1列のCSVファイルを作成するだけでした。
df = pd.read_csv('sample.csv', encoding='utf-8')
出力:
IAS_lissé
0 1
1 2
2 3
私はスペイン語で同じ問題を見つけ、「latin1」エンコーディングで解決しました:
import pandas as pd
pd.read_csv("Openhealth_S-Grippal.csv",delimiter=";", encoding='latin1')
それが役に立てば幸い!
Utf-8を使用してもうまくいきませんでした。例えば。このコード:
bla = pd.DataFrame(data = [1, 2])
bla.to_csv('funkyNamé , things.csv')
blabla = pd.read_csv('funkyNamé , things.csv', delimiter=";", encoding='utf-8')
blabla
最終的に返される:OSError:ファイルからの初期化に失敗しました
ファイルを変更したくないと言ったことは知っています。ファイルの内容とファイル名を意味する場合、ファイルの名前をアクセントなしに変更し、csvファイルを新しい名前で読み取り、ファイル名を元の名前にリセットします。
originalfilepath = r'C:\Users\myself\\funkyNamé , things.csv'
originalfolder = r'C:\Users\myself'
os.rename(originalfilepath, originalFolder+"\\tempName.csv")
df = pd.read_csv(originalFolder+"\\tempName.csv", encoding='ISO-8859-1')
os.rename(originalFolder+"\\tempName.csv", originalfilepath)
「ファイルを変更せずに」を意味した場合名前、役に立たないことをおforびします。これが他の人の助けになることを願っています。