前提・実現したいこと
閲覧ありがとうございます。
pandasを用いて、財務諸表データを分析しようとしたところエラーが発生しました。
発生したエラーは「カラムエラー」と呼ばれるものらしく、カラムサイズが一定でないとの事だったのでカラム名を新しく作成してみました。
カラム名を入れて実行したところ、エラーは消えたのですが、目的とする場所からデータを抽出しようとした際、本来数値データが入っているはずなのですが、データが入っていないようで「NO」と表示されていたり、「NaN」と表示されています。
数値扱いではなく、文字扱いされているのではと考え、カンマを消してみたりしたのですが、変わらず...
dtypes: object(9)と表示されていたので、float型に変換すればいいのかと思い試してみたのですが、カラム名を入れる前に一番上にあった、IDや項目名が入ってるヘッダーが変換できないようでエラーが出てしまいました...
私の目的としては、元の財務諸表データをpandasで正確に読みこみ、分析する為に必要なデータを抽出する事なのですが、このデータを読み込む際に問題がおこっていると考えられ困っております。
私自身、pythonに触れて日が浅いため、どなたか有識者様から何卒お力添えいただきたく存じます。
※
元データはXBRL形式ですが、csv形式に変換しております。
文字コードは"Shift_jis"や"cp932"だとエラーがでたため"UTF-16LE"としています。
発生している問題・エラーメッセージ
#以下はエラーメッセージではなく、実行したところ表示されたものです(私は意図してない) c00 c01 c02 ... c06 c07 c08 0 要素ID\t"項目名"\t"コンテキストID"\t"相対年度"\t"連結・個別"\t"期間・... NaN NaN ... 1 jpdei_cor:NumberOfSubmissionDEI\t"提出回数、DEI"\t"... NaN NaN ... NaN NaN NaN 2 jpcrp_cor:RevenueIFRSSummaryOfBusinessResults... NaN NaN ... NaN NaN NaN 3 jpcrp_cor:RevenueIFRSSummaryOfBusinessResults... NaN NaN ... NaN NaN NaN 4 jpcrp_cor:RevenueIFRSSummaryOfBusinessResults... NaN NaN ... NaN NaN NaN [5 rows x 9 columns] 9 <class 'pandas.core.frame.DataFrame'> Int64Index: 710 entries, 0 to 709 Data columns (total 9 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 c00 710 non-null object 1 c01 710 non-null object 2 c02 710 non-null object 3 c03 710 non-null object 4 c04 710 non-null object 5 c05 710 non-null object 6 c06 710 non-null object 7 c07 710 non-null object 8 c08 710 non-null object dtypes: object(9) memory usage: 30.5+ KB Index(['c00', 'c01', 'c02', 'c03', 'c04', 'c05', 'c06', 'c07', 'c08'], dtype='object') 売上総利益 NO
該当のソースコード
import pandas as pd
col_names = [ 'c{0:02d}'.format(i) for i in range(9) ]
df = pd.read_csv("test.csv",encoding="UTF-16LE",names = col_names)
df = df.fillna("NO")
print(len(df.columns))
df.info()
print(df.columns)
print("売上総利益",df.loc[280]["c08"]) ### 試したこと ここに問題に対して試したことを記載してください。 ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。