pandas.get_dummies — pandas 3.0.0rc0+52.gb43b95d2b4 documentation (original) (raw)

pandas.get_dummies(data, prefix=None, prefix_sep='_', dummy_na=False, columns=None, sparse=False, drop_first=False, dtype=None)[source]#

Convert categorical variable into dummy/indicator variables.

Each variable is converted in as many 0/1 variables as there are different values. Columns in the output are each named after a value; if the input is a DataFrame, the name of the original variable is prepended to the value.

Parameters:

dataarray-like, Series, or DataFrame

Data of which to get dummy indicators.

prefixstr, list of str, or dict of str, default None

A string to be prepended to DataFrame column names. Pass a list with length equal to the number of columns when calling get_dummies on a DataFrame. Alternatively, prefixcan be a dictionary mapping column names to prefixes.

prefix_sepstr, list of str, or dict of str, default ‘_’

Should you choose to prepend DataFrame column names with a prefix, this is the separator/delimiter to use between the two. Alternatively,prefix_sep can be a list with length equal to the number of columns, or a dictionary mapping column names to separators.

dummy_nabool, default False

If True, a NaN indicator column will be added even if no NaN values are present. If False, NA values are encoded as all zero.

columnslist-like, default None

Column names in the DataFrame to be encoded. If columns is None then all the columns withobject, string, or category dtype will be converted.

sparsebool, default False

Whether the dummy-encoded columns should be backed by a SparseArray (True) or a regular NumPy array (False).

drop_firstbool, default False

Whether to get k-1 dummies out of k categorical levels by removing the first level.

dtypedtype, default bool

Data type for new columns. Only a single dtype is allowed.

Returns:

DataFrame

Dummy-coded data. If data contains other columns than the dummy-coded one(s), these will be prepended, unaltered, to the result.

Notes

Reference the user guide for more examples.

Examples

s = pd.Series(list("abca"))

pd.get_dummies(s) a b c 0 True False False 1 False True False 2 False False True 3 True False False

s1 = ["a", "b", np.nan]

pd.get_dummies(s1) a b 0 True False 1 False True 2 False False

pd.get_dummies(s1, dummy_na=True) a b NaN 0 True False False 1 False True False 2 False False True

df = pd.DataFrame({"A": ["a", "b", "a"], "B": ["b", "a", "c"], "C": [1, 2, 3]})

pd.get_dummies(df, prefix=["col1", "col2"]) C col1_a col1_b col2_a col2_b col2_c 0 1 True False False True False 1 2 False True True False False 2 3 True False False False True

pd.get_dummies(pd.Series(list("abcaa"))) a b c 0 True False False 1 False True False 2 False False True 3 True False False 4 True False False

pd.get_dummies(pd.Series(list("abcaa")), drop_first=True) b c 0 False False 1 True False 2 False True 3 False False 4 False False

pd.get_dummies(pd.Series(list("abc")), dtype=float) a b c 0 1.0 0.0 0.0 1 0.0 1.0 0.0 2 0.0 0.0 1.0