Skip to content

Commit 10d53b4

Browse files
authored
PERF: Remove Polars PerformanceWarning (#1418)
1 parent 266565b commit 10d53b4

File tree

1 file changed

+10
-6
lines changed

1 file changed

+10
-6
lines changed

hvplot/plotting/core.py

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1875,29 +1875,33 @@ def _get_converter(self, x=None, y=None, kind=None, **kwds):
18751875

18761876
# Find columns which should be converted for LazyDataFrame and DataFrame
18771877
if isinstance(self._data, (pl.LazyFrame, pl.DataFrame)):
1878+
try:
1879+
column_names = self._data.collect_schema().names()
1880+
except Exception: # Maybe not always supported, has been there since 1.7.1
1881+
column_names = list(self._data.columns)
1882+
18781883
if params.get('hover_cols') == 'all':
1879-
columns = list(self._data.columns)
1884+
columns = column_names
18801885
else:
18811886
possible_columns = [
18821887
[v] if isinstance(v, str) else v
18831888
for v in params.values()
18841889
if isinstance(v, (str, list))
18851890
]
18861891

1887-
columns = (set(self._data.columns) & set(itertools.chain(*possible_columns))) or {
1888-
self._data.columns[0]
1889-
}
1892+
columns = set(column_names) & set(itertools.chain(*possible_columns))
1893+
columns = columns or {column_names[0]}
18901894
if y is None:
18911895
# When y is not specified HoloViewsConverter finds all the numeric
1892-
# columns and use them as y values (see _process_chart_y). We meed
1896+
# columns and use them as y values (see _process_chart_y). We need
18931897
# to include these columns too.
18941898
columns |= set(self._data.select(pl.col(pl.NUMERIC_DTYPES)).columns)
18951899
xs = x if is_list_like(x) else (x,)
18961900
ys = y if is_list_like(y) else (y,)
18971901
columns |= {*xs, *ys}
18981902
columns.discard(None)
18991903
# Reorder the columns as in the data.
1900-
columns = sorted(columns, key=lambda c: self._data.columns.index(c))
1904+
columns = sorted(columns, key=lambda c: column_names.index(c))
19011905

19021906
if isinstance(self._data, pl.DataFrame):
19031907
data = self._data.select(columns).to_pandas()

0 commit comments

Comments
 (0)