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

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

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

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

599閲覧

データを抽出する時に、"ValueError:labels ['arrival'] not contained in axis という エラーが発生して苦慮しております!

akakage13

総合スコア89

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2017/07/28 22:39

データを抽出する時に、"ValueError:labels ['arrival'] not contained in axis という エラーが発生して苦慮しております!

下記が今回、エラーの発生したソースコードでございます。

# -*- coding: utf-8 -*- import urllib2 import codecs import numpy as np import pandas as pd f1 = codecs.open('panda_1_1.csv', 'w', 'utf-8') #読み込ませるデータ data = pd.read_csv("temp_test_1_1.csv" , sep=",") # 特徴データとラベルデータを取り出す data_except_arrival = data.drop("arrival", axis=1) features = data_except_arrival.as_matrix() targets = data['arrival'].as_matrix() #== 1 #.strip() low_frequentry_data = data[data.arrival == 1].index low_frequentry_data_sample = data.loc[low_frequentry_data] pd.DataFrame(low_frequentry_data_sample) #print pd.DataFrame(low_frequentry_data_sample) sampling_size = len(data[data.arrival == 1]) #print ("sampling size : ",sampling_size) high_frequentry_data = data[data.arrival == 0].index # 出現頻度の小さいクラスに、大きいクラスの個数を合わせてランダムにデータを抽出する random_indices = np.random.choice(high_frequentry_data, sampling_size, replace=False) high_frequentry_data_sample = data.loc[random_indices] pd.DataFrame(high_frequentry_data_sample) #print pd.DataFrame(high_frequentry_data_sample) # データをマージする merged_data = pd.concat([high_frequentry_data_sample, low_frequentry_data_sample], ignore_index=True) pd.DataFrame(merged_data) print pd.DataFrame(merged_data) merged_data.to_csv('panda_1_1.csv', index=None)

読み込ませるデータ temp_test_1_1.csv は こちらでございます。

temp(0) temp(1) temp(2) temp(3) temp(4) temp(5) temp(6) temp(7) temp(8) temp(9) temp(10) temp(11) temp(12) arrival 0 0 4 8.1 13.1 12.3 9.1 9.2 6.4 6.6 6.3 6.5 6.9 1 0 6.8 3.7 9.9 16 7 5.3 4.9 5.1 5.1 5.2 4.7 4.7 1 0 3.4 30 61.4 27.8 11.5 11.7 11.9 12.8 13.4 14 14.5 15.6 0 0 3.4 25 9.1 48 38 20.4 17.7 18.3 15 14.6 14.2 14.9 0 0 6.8 9.9 19.7 12.8 13.6 14.3 14 14.2 15 14.3 14.5 15.3 1 0 3.4 25 34.5 156.1 107.4 84.6 59.3 63.2 67.7 65.7 67.2 69.2 0 0 0 37.6 92.2 198.7 137.7 125.3 99.2 90.1 93.8 92.4 93.8 90.9 0 0 0 5.5 12 27.9 28.4 26.9 25.9 27.5 27.4 27.8 27.4 28.7 0 0 0 4.3 1.4 1.1 1.3 1.5 1.7 1.8 1.8 1.8 1.8 1.8 0 0 0 50.1 61.4 118.1 57 58.7 32.5 35.1 38.3 39.5 40.3 42.9 0 0 0 25.6 88.4 88.4 47.1 76.8 70.6 70.6 76.7 81.4 78.9 80.2 0

ValueError:labels ['arrival'] not contained in axis
について、少し調べたのですが、列に空白があるのが原因とありましたので、.strip()を用いてみましたが
うまく動きませんでした。

先輩方の御教示、よろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

sep=","だとカンマ区切りとして読み込まれ、正しくカラムが分割されません。
任意の空白を区切りとみなすようsep=r"\s*"を指定することで正しく読み込まれます。
参考:Can pandas handle variable-length whitespace as column delimiters

Phthon

1# 略 2data = pd.read_csv("temp_test_1_1.csv" , sep=r"\s*") 3# 略

投稿2017/07/29 00:23

can110

総合スコア38262

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

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

akakage13

2017/07/29 00:31

can110様、迅速、明快な御教示ありがとうございました。 今後ともよろしくお願いいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問