从 pandas 中的系列中创建一组

Create a set from a series in pandas

我有一个从 Kaggle 的 San Fransico Salaries 中提取的数据框:https://www.kaggle.com/kaggle/sf-salaries 我希望创建一组列的值,例如 'Status'.

这是我尝试过的方法,但它带来了所有记录的列表而不是集合(sf 是我命名数据框的方式)。

a=set(sf['Status'])
print a

根据此网页,这应该可行。 How to construct a set out of list items in python?

如果你只需要获取唯一值列表,你可以只使用unique方法。 如果你想设置 Python,那么做 set(some_series)

In [1]: s = pd.Series([1, 2, 3, 1, 1, 4])

In [2]: s.unique()
Out[2]: array([1, 2, 3, 4])

In [3]: set(s)
Out[3]: {1, 2, 3, 4}

但是,如果您有 DataFrame,则只需 select 个系列 (some_data_frame['<col_name>'])。

对于大尺寸 series 和重复项,set(some_series) 执行时间将随着 series 尺寸呈指数增长。

更好的做法是 set(some_series.unique())

显示 x16 执行时间的简单示例。