我一直想做以下工作,以便有一个简单的故事,用于在 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/