我想编写一个接收熊猫数据框和给定系列名称的函数,并在数据集中检索此系列的唯一值及其频率。
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()函数,但我不确定这是否正确。
答案 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