2016-12-13 7 views
0

私のPythonコードに問題があります。私は特定の年の日付を持つ必要があり、それは平日のデータフレームで、それを引き渡してそれをExcelに渡します。それはすべて正常に動作しているようだが、インデックスとして表示されていても、.locコマンドでインデックスに対処できませんdtype:object。私はいつもメッセージKeyError例外を取得:KeyError: 'ラベル[2008-01-01]が[index]にありません'

'the label [2008-01-01] is not in the [index]'  

はできるだけ早く私は私の日付を得意とし、それを引き渡すようにちょうど####変換されますが、情報はまだ日付であるので、私は簡単にExcelでそれらを変換することができます日付形式に変換します。誰も私にこれら2つの問題を解決する方法を教えてもらえますか?本当にありがとう!

これは私のコードです:

Start_of_year = date(Year_Start, 01, 01) 
End_of_year = date(Year_Start, 12, 31) 

Day_Difference = (End_of_year - Start_of_year).days 
Calender_List = [] 

for i in range(0, Day_Difference + 1): 
    Date = Start_of_year + timedelta(i) 
    Calender_List.append({'Datum': Date, 'Wochentag': weekday[Date.weekday()]}) 

Calender = pd.DataFrame(Calender_List) 
Calender.set_index('Datum', inplace=True) 

print Calender.head() 

Calender.to_excel(writer, 'Jahr %s' % Year_Start) 
writer.save() 

print Calender.index 
print Calender.loc['2008-01-01'] 

答えて

1

あなたがインデックスを選択して抱えている問題は、あなたの代わりに日付オブジェクトの文字列を探しているという事実から来ています。 は代わりに、次のようにします。

print Calender.loc[date(2018, 01, 01)] 

私はかなりあなたの第二の問題を理解していないが、私はパンダのxlsxwriterを使用して助言する秀でるために転送します。問題が小さすぎる、使用中のセルから来る場合:

worksheet.set_column(column, width) 

問題は、あなたの日付が日付として認識されていないことであれば、細胞または日付

を含む列をフォーマット
date_format = workbook.add_format({'num_format': 'yyyy/mm/dd'}) 
worksheet.write('A1', date, date_format) 
-- or -- 
worksheet.set_column(column, width, format) 
+0

非常にありがとう!それは私のすべての問題を解決しました! :-)私は日付の2番目の問題を抱えていましたが、今は完全にうまく動作します:-)素早くサポートしてくれてありがとう:-) – Tobi

関連する問題