mirror of
https://github.com/apache/superset.git
synced 2026-04-19 08:04:53 +00:00
feat: Axis sort in the Bar Chart V2 (#21993)
This commit is contained in:
@@ -14,22 +14,34 @@
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
from typing import Dict
|
||||
from typing import List, Optional, Union
|
||||
|
||||
from pandas import DataFrame
|
||||
|
||||
from superset.utils.pandas_postprocessing.utils import validate_column_args
|
||||
|
||||
|
||||
@validate_column_args("columns")
|
||||
def sort(df: DataFrame, columns: Dict[str, bool]) -> DataFrame:
|
||||
# pylint: disable=invalid-name
|
||||
@validate_column_args("by")
|
||||
def sort(
|
||||
df: DataFrame,
|
||||
is_sort_index: bool = False,
|
||||
by: Optional[Union[List[str], str]] = None,
|
||||
ascending: Union[List[bool], bool] = True,
|
||||
) -> DataFrame:
|
||||
"""
|
||||
Sort a DataFrame.
|
||||
|
||||
:param df: DataFrame to sort.
|
||||
:param columns: columns by by which to sort. The key specifies the column name,
|
||||
value specifies if sorting in ascending order.
|
||||
:param is_sort_index: Whether by index or value to sort
|
||||
:param by: Name or list of names to sort by.
|
||||
:param ascending: Sort ascending or descending.
|
||||
:return: Sorted DataFrame
|
||||
:raises InvalidPostProcessingError: If the request in incorrect
|
||||
"""
|
||||
return df.sort_values(by=list(columns.keys()), ascending=list(columns.values()))
|
||||
if not is_sort_index and not by:
|
||||
return df
|
||||
|
||||
if is_sort_index:
|
||||
return df.sort_index(ascending=ascending)
|
||||
return df.sort_values(by=by, ascending=ascending)
|
||||
|
||||
Reference in New Issue
Block a user