将几种功能应用于python中按数据框分组的功能

由古普塔

我有一个带有一些列的数据集,用于对数据库进行分组。还有两列;一个是dtype对象,另一个是数字对象。我想找到每列每个组的唯一值的数量以及最常见的值。

# Typo in code next line removed
df = pd.DataFrame({'A': ['foo', 'foo', 'foo', 'foo', 'bar', 'bar','bar','bar',], 'C_object':['str1', 'str2', 'str2', 'str2','str1', 'str1', 'str1', 'str2'], 'D_num': [10, 2, 2, 2, 10, 10, 10, 2]})
d = df.groupby('A')
g = d['C_object', 'D_num'].transform(unique)

预期输出在此处输入图片说明这不起作用。

电视

试试这个:

import pandas as pd

df = pd.DataFrame({'A': ['foo', 'foo', 'foo', 'foo', 'bar', 'bar','bar','bar',], 'C_object':['str1', 'str2', 'str2', 'str2','str1', 'str1', 'str1', 'str2'], 'D_num': [10, 2, 2, 2, 10, 10, 10, 2]})

df2=pd.DataFrame({'C_object_len_unique': df.groupby('A')['C_object'].apply(lambda x: len(x.unique())), \
                  'C_object_most_common': df.groupby('A')['C_object'].agg(lambda x:x.value_counts().index[0]), \
                  'D_num_len_unique' : df.groupby('A')['D_num'].apply(lambda x: len(x.unique())), \
                  'D_num_most_common': df.groupby('A')['D_num'].agg(lambda x:x.value_counts().index[0]) \
                  }).reset_index()
print df2

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章