【发布时间】:2018-01-23 19:48:20
【问题描述】:
我一直想做以下工作,以便在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 语句是一个更好的自我记录实现。
for col in df.columns:
df[col].unique()
【问题讨论】:
-
动机是在对新数据集进行探索性数据分析 [eda] 时,我不仅要输出与每列关联的类型,还要输出每列中存在的唯一值的列表。这将定义实现处理空洞/NaN 值和垃圾值的数据整理代码所需的后续步骤。
-
是的,当传递给 apply 的函数的结果是数据框中不同列的不同大小时,pandas 不喜欢它......我认为这很可能发生在您的数据中。跨度>
标签: python pandas dataframe unique apply