Skip to main content
 首页 » 编程设计

以 pandas 数据框和列名作为输入的 Python 函数

2025年05月04日21leader

我正在尝试编写一个函数,它将一个 Pandas DataFrame (df) 和一个列名 (col) 作为输入,并返回一个包含所有唯一值的列表排序的列。我正在尝试在没有任何模块方法的情况下执行此操作。

我正在使用以下代码:

import pandas as pd 
 
def list_col(df, col): 
    """puts unique items of given column in a list""" 
    f = pd.df() 
    l = [] 
    r = f.loc[:,col] 
    for i in r: 
        if i not in l: 
            l.append(i) 
        return l.sort() 

但是,我收到错误消息:

AttributeError: module 'pandas' has no attribute 'df' 

我该如何解决这个问题?谢谢!

请您参考如下方法:

我认为可以使用unique并调用 sorted:

def list_col(df, col): 
    return sorted(df[col].unique()) 

或者转换为set,list并调用sorted:

def list_col(df, col): 
    return sorted(list(set(df[col]))) 

示例:

df = pd.DataFrame({'A':list('ddcdef'), 
                   'B':[4,5,4,5,5,4], 
                   'F':list('acabbb')}) 
 
print (df) 
   A  B  F 
0  d  4  a 
1  d  5  c 
2  c  4  a 
3  d  5  b 
4  e  5  b 
5  f  4  b 
 
def list_col(df, col): 
    return sorted(df[col].unique()) 
 
print (list_col(df, 'F')) 
['a', 'b', 'c']