Я очень новичок в python и пытаюсь получить значение из словаря, где ключи определены в столбце dataframe (pandas). Я искал довольно много, и самое близкое дело - вопрос по ссылке ниже, но он не приходит с ответом.Python: как получить значения из словаря из серии pandas
Итак, здесь я пытаюсь найти ответ для того же типа вопросов.
Select from dictionary using pandas series
меня есть словарь
type_dict = {3: 'foo', 4:'bar',5:'foobar', 6:'foobarbar'}
и фрейм данных с помощью следующего столбца:
>>> df.type
0 3
1 4
2 5
3 6
4 3
5 4
6 5
7 6
8 3
Я хочу, чтобы создать новый столбец, содержащий соответствующее значение type_dict, но единственное, что я мог придумать и не работал:
type_dict[df.type]
TypeError: объекты серии 'изменчивы, поэтому они не могут быть хэшированного
type_dict[df.type.values]
TypeError: unhashable Тип: 'numpy.ndarray'
Обновленный вопрос:
для панд DataFrame , скажем, 'df', как я могу построить скорость над метрами с типом в качестве ключа маркерного словаря.
mkr_dict = {'gps': 'x', 'phone': '+', 'car': 'o'}
x = {'speed': [10, 15, 20, 18, 19], 'meters' : [122, 150, 190, 230, 300], 'type': ['phone', 'phone', 'gps', 'gps', 'car']}
df = pd.DataFrame(x)
meters speed type
0 122 10 phone
1 150 15 phone
2 190 20 gps
3 230 18 gps
4 300 19 car
plt.scatter(df.meters, df.Speed, marker = df.type.map(mkr_dict))
разброс сюжет не работает для меня ...
AFAIK, простой python не имеет понятия «dataframes». Если вы используете фреймворк или библиотеку (например, [pandas] (http://pandas.pydata.org/)), укажите, какой из них. –
Я думаю, что ваш вопрос о рассеянии должен быть новым вопросом, я не эксперт matplotlib, но я думаю, что вы можете достичь этого, используя ответ здесь: http://stackoverflow.com/questions/26490817/matplotlib-scatter-plot-with -разные-маркеры-и-цвета в основном это итерации по каждой строке, вызывающей разброс и передачу координаты x, y и маркера – EdChum