首页 > 解决方案 > 列表作为 pandas 函数的参数

问题描述

我是 python 和 pandas 的新手。
我有一个数据框,我想按多列排序。我创建了两个列表,一个带有列列表,一个带有排序顺序。我想将这些列表用于 pandas sort_values 函数

从熊猫导入数据框
将熊猫导入为 pd

d = {'num_sum':[2,3,1,4,5],
     'num_avg':[5,4,3,2,1]}

结果 = 数据帧(d)

col_list = ['num_sum','num_avg']
sort_order = [真,假]

结果 = result.sort_values([col_list], 升序=[sort_order])

但返回

KeyError: ['num_sum', 'num_avg']

如何将两个列表作为 sort_values 函数的参数传递?

标签: pythonpandasdataframe

解决方案


只需将列表作为变量传递。通过这种方式,您正在传递一个列表列表。

from pandas import DataFrame
import pandas as pd

d = {'num_sum':[2,3,1,4,5],
     'num_avg':[5,4,3,2,1]}

result = DataFrame(d)

col_list = ['num_sum','num_avg']
sort_order = [True, False]

result = result.sort_values(col_list, ascending=sort_order) 

推荐阅读