【问题标题】:Lists as argument of pandas functions列表作为 pandas 函数的参数
【发布时间】:2021-07-07 22:11:53
【问题描述】:

我是 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 函数的参数传递?

【问题讨论】:

  • result.sort_values(col_list, ascending=sort_order)
  • 注意:您收到此错误是因为您通过[col_list][sort_order] 创建了col_listsort_order 的嵌套列表,因为它们最初是一个列表

标签: python pandas dataframe


【解决方案1】:

只需将列表作为变量传递。这样,您正在传递一个列表列表。

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) 

【讨论】:

    【解决方案2】:
    result = result.sort_values(col_list, ascending=sort_order) 
    

    代替:

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

    【讨论】:

      最近更新 更多