1

df['2005-5-31'] が KeyError 例外をトリガーする理由を誰か教えてもらえますか?

rng = pd.date_range('2005', '2012', freq='M')
df = pd.DataFrame(randn(len(rng), 3), rng, ['X', 'Y', 'Z'])
df.head()

# works
df.ix['2005-5-31']
df['2005-5-31':'2005-5-31']

# Gives KeyError: u'no item named 2005-5-31'
df['2005-5-31']

df['2000-01-01'] を使用したコードに従ってください。

#multiple rows on a single date
rng = pd.date_range('2000-01-01', '2000-01-3', freq='8H')
df = pd.DataFrame(randn(len(rng), 3), rng, ['X', 'Y', 'Z'])

# works
df['2000-01-01']

                           X    Y   Z
2000-01-01 00:00:00 -0.227981    1.927932   -0.518947
2000-01-01 08:00:00  0.486063   -1.255186    0.375075
2000-01-01 16:00:00 -2.313950    0.654384    1.111493
4

2 に答える 2

1

df['2005-5-31']列で選択することですが、列名がありません2005-5-31

df['X']列名があるので機能しますx

編集

列ではなくインデックスで選択する理由df['2005-5-31':'2005-5-31']は、列でスライス選択を行う意味がないためです。

詳細については、こちらをご覧ください

于 2013-05-08T18:01:30.413 に答える
1

df['2005-5-31']2005-5-31 という名前の列を返します。列の名前は X、Y、Z です。また、日付列がないため、エラーが発生しています!

.ix[]最初の入力は行インデックスであり、最大 2 つの入力を必要とするため、メソッドが機能するようになりました。インデックスのある行がある'2005-5-31'ので、機能します!

于 2013-05-08T18:04:39.450 に答える