ディクショナリからデータフレームにいくつかの値をマップしようとしています。データフレームには、月というタイトルの列があり、値は1〜12です。私の辞書は、月の数値をその名前と同じです。たとえば、1月1日...
以下のコードを試してみると、NaNが表示されますが、その理由がわかりません。
month_dict = {"1" : "January", "2" : "February", "3" : "March", "4" : "April", "5" : "May" , "6" : "June", "7" : "July", "8" : "August", "9" : "September", "10" : "October" ,"11" : "November","12" : "December"}
df['month'] = df['month'].map(month_dict)
同等の数値の代わりに月の名前を使用することを期待していますが、NaNのみを返します。誰か助けてもらえますか?
列と辞書のキーに同じタイプのデータが必要です。
文字列を照合するためのソリューション:
辞書のキーの文字列のため、列を文字列にキャストします。
month_dict = {"1" : "January", "2" : "February", "3" : "March", "4" : "April",
"5" : "May" , "6" : "June", "7" : "July", "8" : "August",
"9" : "September", "10" : "October" ,"11" : "November","12" : "December"}
df['month'] = df['month'].astype(str).map(month_dict)
整数を一致させるための解決策:
辞書のキーを整数に変換します。
month_dict = {int(k):v for k, v in month_dict.items()}
print (month_dict)
{1: 'January', 2: 'February', 3: 'March', 4: 'April', 5: 'May', 6: 'June',
7: 'July', 8: 'August', 9: 'September', 10: 'October', 11: 'November', 12: 'December'}
df['month'] = df['month'].map(month_dict)
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加