質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

Q&A

解決済

2回答

1353閲覧

python3のpandasでindexをしていしてcsvをDataFrameとして読み込みたい。

Masarina

総合スコア1

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

0グッド

0クリップ

投稿2021/11/02 08:51

前提・実現したいこと

####csvファイルを読み込む時にエラーが発生しました。
indexを指定すると、以下のようなエラーが現れます。

※プライバシーに考慮し、ファイルパスは省略しています。

発生している問題・エラーメッセージ

Traceback (most recent call last): File "ファイル名.py", line 16, in <module> df_bace_file = df_bace_file.drop(1) #五行目は使用しないので、五行目を消去する。 File "/usr/local/lib/python3.9/site-packages/pandas/util/_decorators.py", line 311, in wrapper return func(*args, **kwargs) File "/usr/local/lib/python3.9/site-packages/pandas/core/frame.py", line 4906, in drop return super().drop( File "/usr/local/lib/python3.9/site-packages/pandas/core/generic.py", line 4150, in drop obj = obj._drop_axis(labels, axis, level=level, errors=errors) File "/usr/local/lib/python3.9/site-packages/pandas/core/generic.py", line 4214, in _drop_axis raise KeyError(f"{labels} not found in axis") KeyError: '[1] not found in axis'

該当のソースコード

Python3

1df_bace_file = pd.read_csv("ファイルパス.csv",encoding='cp932',header=2,index_col=0) 2df_bace_file = df_bace_file.drop(1) #五行目は使用しないので、五行目を消去する。 3df_bace_file = df_bace_file.drop(0) #この行もいらない。

※不要な行を読み込まないようにしています。

試したこと

すみません、エラーコード翻訳したり、検索したり色々したのですが、よくわかりませんでした,,,。

補足情報

なお、読み込もうとしているファイルは以下のようなcsvファイルです。

csv

1ダウンロードした時刻:2021/10/17 09:14:45 2 3 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 東京 4年月日 平均気温(℃) 平均気温(℃) 平均気温(℃) 平均気温(℃) 平均気温(℃) 平均気温(℃) 平均気温(℃) 最高気温(℃) 最高気温(℃) 最高気温(℃) 最高気温(℃) 最高気温(℃) 最高気温(℃) 最高気温(℃) 最高気温(℃) 最高気温(℃) 最低気温(℃) 最低気温(℃) 最低気温(℃) 最低気温(℃) 最低気温(℃) 最低気温(℃) 最低気温(℃) 最低気温(℃) 最低気温(℃) 降水量の合計(mm) 降水量の合計(mm) 降水量の合計(mm) 降水量の合計(mm) 降水量の合計(mm) 降水量の合計(mm) 降水量の合計(mm) 降水量の合計(mm) 降水量の合計(mm) 合計全天日射量(MJ/㎡) 合計全天日射量(MJ/㎡) 合計全天日射量(MJ/㎡) 合計全天日射量(MJ/㎡) 合計全天日射量(MJ/㎡) 合計全天日射量(MJ/㎡) 合計全天日射量(MJ/㎡) 日照時間(時間) 日照時間(時間) 日照時間(時間) 日照時間(時間) 日照時間(時間) 日照時間(時間) 日照時間(時間) 日照時間(時間) 日照時間(時間) 最深積雪(cm) 最深積雪(cm) 最深積雪(cm) 最深積雪(cm) 最深積雪(cm) 最深積雪(cm) 最深積雪(cm) 最深積雪(cm) 最深積雪(cm) 最深積雪(cm) 最深積雪(cm) 最深積雪(cm) 降雪量合計(cm) 降雪量合計(cm) 降雪量合計(cm) 降雪量合計(cm) 降雪量合計(cm) 降雪量合計(cm) 降雪量合計(cm) 降雪量合計(cm) 降雪量合計(cm) 平均風速(m/s) 平均風速(m/s) 平均風速(m/s) 平均風速(m/s) 平均風速(m/s) 平均風速(m/s) 平均風速(m/s) 5 平年値(℃) 平年値(℃) 平年値からの差(℃) 平年値からの差(℃) 時分 時分 平年値(℃) 平年値(℃) 平年値からの差(℃) 平年値からの差(℃) 時分 時分 平年値(℃) 平年値(℃) 平年値からの差(℃) 平年値からの差(℃) 平年値(mm) 平年値(mm) 平年値(mm) 平年値に対する比(%) 平年値に対する比(%) 平年値(MJ/㎡) 平年値(MJ/㎡) 平年値に対する比(%) 平年値に対する比(%) 平年値(時間) 平年値(時間) 平年値(時間) 平年値に対する比(%) 平年値に対する比(%) 時分 時分 時分 平年値(cm) 平年値(cm) 平年値(cm) 平年値に対する比(%) 平年値に対する比(%) 平年値(cm) 平年値(cm) 平年値(cm) 平年値に対する比(%) 平年値に対する比(%) 平年値(m/s) 平年値(m/s) 平年値からの差(m/s) 平年値からの差(m/s) 6 品質情報 均質番号 品質情報 品質情報 品質情報 品質情報 均質番号 品質情報 品質情報 品質情報 品質情報 均質番号 品質情報 品質情報 現象なし情報 品質情報 均質番号 現象なし情報 品質情報 品質情報 品質情報 均質番号 品質情報 品質情報 現象なし情報 品質情報 均質番号 現象なし情報 品質情報 品質情報 現象なし情報 品質情報 現象なし情報 品質情報 均質番号 現象なし情報 品質情報 品質情報 現象なし情報 品質情報 均質番号 現象なし情報 品質情報 品質情報 品質情報 均質番号 品質情報 品質情報 71963/1/1 3.1 8 1 1 1 10.4 8 1 1 1 -2.2 8 1 1 1 0 1 8 1 1.2 8 0 8 12.1 8 1 1 1 8.6 0 8 1 1 1 0 1 8 1 0 8 0 0 1 8 1 1 0 2.3 8 1 0 0 81963/1/2 3.8 8 1 1 1 12.0 8 1 1 1 -2.6 8 1 1 1 0 1 8 1 1.2 8 0 8 10.4 8 1 1 1 8.1 0 8 1 1 1 0 1 8 1 0 1 8 0 0 1 8 1 1 0 2.0 8 1 0 0 91963/1/3 4.4 8 1 1 1 11.7 8 1 1 1 -1.5 8 1 1 1 0 1 8 1 1.2 8 0 8 11.1 8 1 1 1 8.7 0 8 1 1 1 0 1 8 1 0 1 8 0 0 1 8 1 1 0 2.6 8 1 0 0 101963/1/4 3.6 8 1 1 1 9.6 8 1 1 1 -2.5 8 1 1 1 0 1 8 1 1.2 8 0 8 10.2 8 1 1 1 8.7 0 8 1 1 1 0 1 8 1 0 1 8 0 0 1 8 1 1 0 1.7 8 1 0 0

そして、下のような形で読み込みたいのです。

hope

1年月日 平均気温(℃) 平均気温(℃) 平均気温(℃) 平均気温(℃) 平均気温(℃) 平均気温(℃) 平均気温(℃) 最高気温(℃) 最高気温(℃) 最高気温(℃) 最高気温(℃) 最高気温(℃) 最高気温(℃) 最高気温(℃) 最高気温(℃) 最高気温(℃) 最低気温(℃) 最低気温(℃) 最低気温(℃) 最低気温(℃) 最低気温(℃) 最低気温(℃) 最低気温(℃) 最低気温(℃) 最低気温(℃) 降水量の合計(mm) 降水量の合計(mm) 降水量の合計(mm) 降水量の合計(mm) 降水量の合計(mm) 降水量の合計(mm) 降水量の合計(mm) 降水量の合計(mm) 降水量の合計(mm) 合計全天日射量(MJ/㎡) 合計全天日射量(MJ/㎡) 合計全天日射量(MJ/㎡) 合計全天日射量(MJ/㎡) 合計全天日射量(MJ/㎡) 合計全天日射量(MJ/㎡) 合計全天日射量(MJ/㎡) 日照時間(時間) 日照時間(時間) 日照時間(時間) 日照時間(時間) 日照時間(時間) 日照時間(時間) 日照時間(時間) 日照時間(時間) 日照時間(時間) 最深積雪(cm) 最深積雪(cm) 最深積雪(cm) 最深積雪(cm) 最深積雪(cm) 最深積雪(cm) 最深積雪(cm) 最深積雪(cm) 最深積雪(cm) 最深積雪(cm) 最深積雪(cm) 最深積雪(cm) 降雪量合計(cm) 降雪量合計(cm) 降雪量合計(cm) 降雪量合計(cm) 降雪量合計(cm) 降雪量合計(cm) 降雪量合計(cm) 降雪量合計(cm) 降雪量合計(cm) 平均風速(m/s) 平均風速(m/s) 平均風速(m/s) 平均風速(m/s) 平均風速(m/s) 平均風速(m/s) 平均風速(m/s) 21963/1/1 3.1 8 1 1 1 10.4 8 1 1 1 -2.2 8 1 1 1 0 1 8 1 1.2 8 0 8 12.1 8 1 1 1 8.6 0 8 1 1 1 0 1 8 1 0 8 0 0 1 8 1 1 0 2.3 8 1 0 0 31963/1/2 3.8 8 1 1 1 12.0 8 1 1 1 -2.6 8 1 1 1 0 1 8 1 1.2 8 0 8 10.4 8 1 1 1 8.1 0 8 1 1 1 0 1 8 1 0 1 8 0 0 1 8 1 1 0 2.0 8 1 0 0 41963/1/3 4.4 8 1 1 1 11.7 8 1 1 1 -1.5 8 1 1 1 0 1 8 1 1.2 8 0 8 11.1 8 1 1 1 8.7 0 8 1 1 1 0 1 8 1 0 1 8 0 0 1 8 1 1 0 2.6 8 1 0 0 51963/1/4 3.6 8 1 1 1 9.6 8 1 1 1 -2.5 8 1 1 1 0 1 8 1 1.2 8 0 8 10.2 8 1 1 1 8.7 0 8 1 1 1 0 1 8 1 0 1 8 0 0 1 8 1 1 0 1.7 8 1 0 0

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

melian

2021/11/02 09:05

CSV ではないので read_table() を使う方が良いでしょうね。
guest

回答2

0

ベストアンサー

'年月日'をindexに指定して読み込んだ場合は「下のような形で読み込みたい」形にはなりません。'年月日'がIndexになるので、次のような形になります。
あと同じ列名には識別のために自動的に連番が付加されます(これは読み込み時に自分の望む形に変更可能)。

python

1 平均気温() 平均気温().1 平均気温().2 ... 平均風速(m/s).4 平均風速(m/s).5 平均風速(m/s).6 2 年月日 ... 31963/1/1 3.1 8 1 ... NaN NaN NaN 41963/1/2 3.8 8 1 ... NaN NaN NaN 51963/1/3 4.4 8 1 ... NaN NaN NaN 61963/1/4 3.6 8 1 ... NaN NaN NaN

上の形でよければコード例は次の通り。

python

1df_bace_file = pd.read_csv("ファイルパス.csv", encoding='cp932', header=2, index_col=0, delimiter="\s+") 2df_bace_file = df_bace_file.drop(index=df_bace_file.index[[0, 1]])

データを区切っているのが,(コンマ)ではなくスペース4つなので、delimiter="\s+"を追加する。最初の1回だけParserWarningが出るかもしれませんが、無視していいです。
index_col=0を指定したことにより、Indexは連番ではなく年月日になっているので、.drop(1)は使えません。これがエラーの原因。df.index[[0, 1]]で行番号から実際のIndex(ここでは年月日)を取得してからindex引数に渡してdropします。


年月日がIndexになる上の形がまずいようなら、読み込むときにindexを指定せずに読み込む。この場合Indexは連番になるので、.drop(1)が使えます(複数行ある時はリストで一度に指定できます)。

python

1df_bace_file = pd.read_csv("ファイルパス.csv", encoding='cp932', header=2, delimiter="\s+") 2df_bace_file = df_bace_file.drop([0, 1])

これで読み込むと以下のような形になります。

python

1 年月日 平均気温() 平均気温().1 ... 平均風速(m/s).4 平均風速(m/s).5 平均風速(m/s).6 22 1963/1/1 3.1 8 ... NaN NaN NaN 33 1963/1/2 3.8 8 ... NaN NaN NaN 44 1963/1/3 4.4 8 ... NaN NaN NaN 55 1963/1/4 3.6 8 ... NaN NaN NaN

一番左の列の 2 3 4 5 はIndexが表示されているものなので、データの一部ではありません。

投稿2021/11/02 14:26

編集2021/11/02 21:07
etherbeg

総合スコア1195

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Masarina

2021/11/03 14:28

>>(これは読み込み時に自分の望む形に変更可能) これに困っていました。なんとか年月日にindexをずらそうと試行錯誤していたところでした。 >>一番左の列の 2 3 4 5 はIndexが表示されているものなので、データの一部ではありません。 勝手にindexが追加されているものだと、思っていました。良かったです。
guest

0

pandas.read_table()skiprows にはリストを指定する事ができます。

pandas.read_table

skiprows: list-like, int or callable, optional

Line numbers to skip (0- indexed) or number of lines to skip (int) at the start of the file.

python

1df_bace_file = pd.read_table( 2 "ファイルパス.csv", encoding='cp932', index_col=0, 3 delim_whitespace=True, skiprows=[0,1,2,4,5] 4) 5 6pd.set_option('display.unicode.east_asian_width', True) 7print(df_bace_file) 8# 9 10 平均気温() 平均気温().1 平均気温().2 平均気温().3 ... 平均風速(m/s).3 平均風速(m/s).4 平均風速(m/s).5 平均風速(m/s).6 11年月日 ... 121963/1/1 3.1 8 1 1 ... NaN NaN NaN NaN 131963/1/2 3.8 8 1 1 ... NaN NaN NaN NaN 141963/1/3 4.4 8 1 1 ... NaN NaN NaN NaN 151963/1/4 3.6 8 1 1 ... NaN NaN NaN NaN

投稿2021/11/02 15:06

melian

総合スコア20655

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問