python - 使用 dataframe.apply 在每列上调用唯一函数

标签 python pandas dataframe unique apply

我一直想做以下工作,以便有一个简单的故事,用于在 pandas.DataFrame 中的每一列上执行 pandas.DataFrame.someColumnName.unique() 函数

df.apply(func=unique, axis=0)  # error NameError: name 'unique' is not defined

我是否忽略了一些技巧来让这个工作或替代解决方案给出以下内容来做类似的事情但在 pandas.DataFrame< 中的每一列上使用 type() 函数 有效。

df.apply(func=lambda x: type(x[0]), axis=0)

请注意,我已经能够完成以下工作,但在 python 中似乎不是制作单行 for 循环的方法,我发现 apply 语句是更好的 self 记录实现。

for col in df.columns: 
    df[col].unique()

最佳答案

unique 不是全局环境中的注册函数,您可以为此目的使用 set:

df.apply(set)

或者如果使用unique,从pandas引用它,你最好将结果转换为列表,因为不能保证所有列都包含相同数量的独特的元素:

df.apply(lambda x: pd.unique(x).tolist())

关于python - 使用 dataframe.apply 在每列上调用唯一函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48409694/

相关文章:

python - 从文本生成关键字的简单方法是什么?

python - 按属性将列表划分为子列表

matplotlib - 使用 Pandas 在 Matplotlib 中设置 Yaxis

python - 使用 scipy.sparse.csc_matrix.toarray() 将稀疏矩阵转换为数组时出错

python - 如何在循环中使用 os.pipe() (复制多个管道)?

python - 如何将 numpy 矩阵添加为 pandas 数据框的新列?

python - 字符串在 Pandas 数据框中包含python中的函数?

r 在 df1 中添加列,在 df2 中添加行数(有条件)

python - 有选择地删除 Pandas 数据框 NaN 行,按包含重复项的 id 列分组

python - 使用Python保存到excel时如何在pd.read_html()中分隔多个数据帧