1717import pandas .core .common as com
1818import pandas .algos as algos
1919
20- from pandas .core .index import Index , MultiIndex
21- from pandas .tseries .period import PeriodIndex
20+ from pandas .core .index import MultiIndex , _get_na_value
2221
2322
2423class _Unstacker (object ):
@@ -83,7 +82,7 @@ def __init__(self, values, index, level=-1, value_columns=None):
8382
8483 def _make_index (lev , lab ):
8584 values = _make_index_array_level (lev .values , lab )
86- i = lev ._simple_new (values , lev .name ,
85+ i = lev ._simple_new (values , lev .name ,
8786 freq = getattr (lev , 'freq' , None ),
8887 tz = getattr (lev , 'tz' , None ))
8988 return i
@@ -262,7 +261,7 @@ def _make_index_array_level(lev, lab):
262261
263262 l = np .arange (len (lab ))
264263 mask_labels = np .empty (len (mask [mask ]), dtype = object )
265- mask_labels .fill (np . nan )
264+ mask_labels .fill (_get_na_value ( lev . dtype . type ) )
266265 mask_indexer = com ._ensure_int64 (l [mask ])
267266
268267 labels = lev
@@ -638,7 +637,7 @@ def melt(frame, id_vars=None, value_vars=None,
638637
639638 This function is useful to massage a DataFrame into a format where one
640639 or more columns are identifier variables (`id_vars`), while all other
641- columns, considered measured variables (`value_vars`), are "unpivoted" to
640+ columns, considered measured variables (`value_vars`), are "unpivoted" to
642641 the row axis, leaving just two non-identifier columns, 'variable' and
643642 'value'.
644643
@@ -680,7 +679,7 @@ def melt(frame, id_vars=None, value_vars=None,
680679 0 a B 1
681680 1 b B 3
682681 2 c B 5
683-
682+
684683 >>> pd.melt(df, id_vars=['A'], value_vars=['B', 'C'])
685684 A variable value
686685 0 a B 1
@@ -702,7 +701,7 @@ def melt(frame, id_vars=None, value_vars=None,
702701 If you have multi-index columns:
703702
704703 >>> df.columns = [list('ABC'), list('DEF')]
705- >>> df
704+ >>> df
706705 A B C
707706 D E F
708707 0 a 1 2
@@ -901,7 +900,7 @@ def get_var_names(df, regex):
901900 return df .filter (regex = regex ).columns .tolist ()
902901
903902 def melt_stub (df , stub , i , j ):
904- varnames = get_var_names (df , "^" + stub )
903+ varnames = get_var_names (df , "^" + stub )
905904 newdf = melt (df , id_vars = i , value_vars = varnames , value_name = stub ,
906905 var_name = j )
907906 newdf_j = newdf [j ].str .replace (stub , "" )
@@ -971,6 +970,7 @@ def get_dummies(data, prefix=None, prefix_sep='_', dummy_na=False):
971970
972971 Examples
973972 --------
973+ >>> import pandas as pd
974974 >>> s = pd.Series(list('abca'))
975975
976976 >>> get_dummies(s)
0 commit comments