簡體   English   中英

帶有pandas數據框和列名稱作為輸入的Python函數

[英]Python function with pandas dataframe and column name as inputs

我正在嘗試編寫一個函數,該函數采用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())

或轉換為setlist和call 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']

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM