【发布时间】:2021-12-29 16:21:01
【问题描述】:
我是 python 新手,正在尝试使用 Kaggle Titanic 数据编写 RNN 程序。 https://www.kaggle.com/c/titanic/data
在尝试执行循环时,我不断收到无意义的错误 keyError: 'C85' -
for each in feature_sets:
print(each)
feature_sets_ints.append([vocab_to_int[word] for word in each.split()])
(对数据集中的词进行编码)
打印输出是(有错误)
3 Braund, Mr. Owen Harris male 22.0 A/5 21171 7.25 nan S
3 Braund, Mr. Owen Harris male 22.0 A/5 21171 7.25 nan S
1 Cumings, Mrs. John Bradley (Florence Briggs Thayer) female 38.0 PC 17599 71.2833 C85 C
Traceback (most recent call last):
File "C:\Users\kfire\Desktop\NLP & Deep Leaning\CNN\RNN.py", line 53, in <module>
feature_sets_ints.append([vocab_to_int[word] for word in each.split()])
File "C:\Users\kfire\Desktop\NLP & Deep Leaning\CNN\RNN.py", line 53, in <listcomp>
feature_sets_ints.append([vocab_to_int[word] for word in each.split()])
KeyError: 'C85'
Process finished with exit code 1
编辑:这是我的数据集的示例:
如您所见,数据集中有 nan 值,但我认为这不是导致问题的原因。
关于如何解决它的任何想法? 或者至少有人可以解释一下这个错误吗?
下面我只添加了有效的代码(我带来的最后一行代码是引发错误的代码)和错误消息的屏幕截图。 和错误信息
import numpy as np
import tensorflow as tf
import pandas as pd
from collections import Counter
feature_sets_train = pd.read_csv('train.csv')
# TODO: Use both datasets to make the embeddings (vocab_to_int map)
feature_sets_test = pd.read_csv('test.csv')
feature_sets_train_tests = pd.concat([feature_sets_train, feature_sets_test])
feature_sets = feature_sets_train
passengers = [' '.join(map(str,passenger[[2,3,4,5,8,9,10,11]])) for passenger in feature_sets.values]
passengers_test = [' '.join(map(str,passenger[[1,2,3,4,7,8,9,10]])) for passenger in feature_sets_test.values]
survived = [passenger[1] for passenger in feature_sets.values]
feature_sets = passengers
feature_sets_test = passengers_test
labels = survived
passengers = [' '.join(map(str,passenger[[0,1,2,3,4,5,7,8,9,11]])) for passenger in feature_sets_train_tests.values]
all_text = ' '.join(passengers)
words = all_text.split()
counts = Counter(words)
vocab = sorted(counts, key=counts.get, reverse=True)
vocab_to_int = {word: ii for ii, word in enumerate(vocab, 1)}
feature_sets_ints = []
feature_sets_ints_test = []
print(feature_sets[0])
for each in feature_sets:
feature_sets_ints.append([vocab_to_int[word] for word in each.split()])
【问题讨论】:
-
请发布您的数据样本
-
感谢您的意见。请查看已编辑的帖子。
标签: python pandas csv recurrent-neural-network