использовать (гео) словарь-столбец dataframe в качестве kwargs - PullRequest
0 голосов
/ 26 января 2020

Краткий:

У меня есть DataFrame, из которых один столбец содержит kwargs словари для вызова fuction. Как распаковать эти словари в ключевые слова функций и их значения? f(**df['kwargcol']) не работает.

Подробно (с примером):

У меня есть (Geo)DataFrame, каждая строка которого должна быть построена в виде линии с определенным стилем. Стиль хранится в виде словаря в столбце фрейма данных:

import geopandas as gpd
import shapely.geometry as sg
line1 = sg.LineString([[0,0],[2,3],[2,2]])
line2 = sg.LineString([[0,1],[2,1],[3,2]])

gdf = gpd.GeoDataFrame([{'geometry': line1, 'style': {'color': 'r', 'linewidth': 3}},
                        {'geometry': line2, 'style': {'color': 'b', 'linestyle': '--'}}])

Я могу построить линии с единым равномерным форматированием, используя распаковку словаря, например:

style = {'color': 'r', 'linestyle': '-.'}    
gdf.plot(**style)

который дает enter image description here

Вопрос

У меня возникли некоторые проблемы при построении линий с отдельным форматированием. Понятно, что следующее не работает:

In [20]: gdf.plot(**gdf['style'])

TypeError: plot() keywords must be strings

Но я не знаю, как заставить его работать вместо этого.

Большое спасибо!

...