私はこのコードを持っています、私はファイルから列 'timestamp'を削除したいです: .data しかしできません。それはエラーを示しています
"ValueError:ラベル['タイムスタンプ']が軸に含まれていません"どうすれば修正できますか
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
plt.rc("font", size=14)
from sklearn.linear_model import LinearRegression
from sklearn.linear_model import Ridge
from sklearn.cross_validation import KFold
from sklearn.cross_validation import train_test_split
data = pd.read_table('u.data')
data.columns=['userID', 'itemID','rating', 'timestamp']
data.drop('timestamp', axis=1)
N = len(data)
print data.shape
print list(data.columns)
print data.head(10)
人が直面し、気付かれることのない最大の問題の1つは、ヘッダーを挿入する際のu.dataファイルでは、データの行間の分離とまったく同じである必要があることです。たとえば、タブを使用してタプルを区切る場合は、スペースを使用しないでください。
u.dataファイルにヘッダーを追加し、行の項目間で使用されたのと同じ数の空白でヘッダーを正確に区切ります。 PS:崇高なテキストを使用してください。メモ帳/メモ帳++が機能しない場合があります。
「ValueError:ラベル['タイムスタンプ']が軸に含まれていません」
ファイルにヘッダーがないため、ファイルをロードした方法でdf
が得られました。ここで、列名はデータの最初の行です。存在しないcolunmtimestamp
にアクセスしようとしました。
あなたのu.data
にはヘッダーがありません
$head u.data
196 242 3 881250949
186 302 3 891717742
したがって、ヘッダーを追加しない限り、列名を操作することはできません。ヘッダーをファイルu.data
に追加できます。例:テキストエディタで開き、上部にa b c timestamp
行を追加しました(これはタブ区切りのファイルのようです。ヘッダーを追加するときはスペースを使用しないように注意してください。そうしないとフォーマットが壊れます)
$head u.data
a b c timestamp
196 242 3 881250949
186 302 3 891717742
これでコードが機能し、data.columns
が返されます
Index([u'a', u'b', u'c', u'timestamp'], dtype='object')
そして、作業コードの残りのトレースは今です
(100000, 4) # the shape
['a', 'b', 'c', 'timestamp'] # the columns
a b c timestamp # the df
0 196 242 3 881250949
1 186 302 3 891717742
2 22 377 1 878887116
3 244 51 2 880606923
4 166 346 1 886397596
5 298 474 4 884182806
6 115 265 2 881171488
7 253 465 5 891628467
8 305 451 3 886324817
9 6 86 3 883603013
ヘッダーを追加したくない場合
または、インデックス(おそらく3)を使用して列 'timestamp'を削除できます。これを行うには、下のdf.ix
を使用して、すべての行、列インデックス0からインデックス2を選択し、インデックス3の列を削除します。
data.ix[:, 0:2]
私はそれをこのようにします:
data = pd.read_table('u.data', header=None,
names=['userID', 'itemID','rating', 'timestamp'],
usecols=['userID', 'itemID','rating']
)
小切手:
In [589]: data.head()
Out[589]:
userID itemID rating
0 196 242 3
1 186 302 3
2 22 377 1
3 244 51 2
4 166 346 1