Python - 如何将动态系列名称和DataFrame名称作为函数参数传递?

时间:2015-07-29 14:10:10

标签: python pandas

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

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()函数,但我不确定这是否正确。

1 个答案:

答案 0 :(得分:1)

像这样使用.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