Python -如何将动态系列名称和数据框架名称作为函数参数传递



我想编写一个函数,该函数接收一个Panda数据帧和一个给定的系列名称,并检索该系列的唯一值及其在数据集中的频率。

def getUniqueValuesByField(dataframe, fieldname):
    ''' Retrive for non-numerical series the unique values and their frequencies '''
    result = dataframe.fieldname.apply(lambda x: pd.Series(x)).unstack().value_counts(normalize=True, sort=True, ascending=False, bins=None, dropna=True)
    #dataframe[fieldname].unique()
    return  result

然后,我可以这样调用这个函数:

 df = pd.DataFrame.from_dict(RequestsDict)
getUniqueValuesByField(df, 'detected_language')
getUniqueValuesByField(df, 'detected_vertical')

有可能吗?我试图连接字符串并使用eval()函数,但我不确定这是正确的方法。

像这样使用.value_counts():

In [35]: df = pd.DataFrame(['foo','bar','baz', 'foo','bar'], columns=['test'])
In [36]: df['test'].value_counts()
Out[36]: 
foo    2
bar    2
baz    1
dtype: int64

最新更新