17
17
import pandas .core .common as com
18
18
import pandas .algos as algos
19
19
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
22
21
23
22
24
23
class _Unstacker (object ):
@@ -83,7 +82,7 @@ def __init__(self, values, index, level=-1, value_columns=None):
83
82
84
83
def _make_index (lev , lab ):
85
84
values = _make_index_array_level (lev .values , lab )
86
- i = lev ._simple_new (values , lev .name ,
85
+ i = lev ._simple_new (values , lev .name ,
87
86
freq = getattr (lev , 'freq' , None ),
88
87
tz = getattr (lev , 'tz' , None ))
89
88
return i
@@ -262,7 +261,7 @@ def _make_index_array_level(lev, lab):
262
261
263
262
l = np .arange (len (lab ))
264
263
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 ) )
266
265
mask_indexer = com ._ensure_int64 (l [mask ])
267
266
268
267
labels = lev
@@ -638,7 +637,7 @@ def melt(frame, id_vars=None, value_vars=None,
638
637
639
638
This function is useful to massage a DataFrame into a format where one
640
639
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
642
641
the row axis, leaving just two non-identifier columns, 'variable' and
643
642
'value'.
644
643
@@ -680,7 +679,7 @@ def melt(frame, id_vars=None, value_vars=None,
680
679
0 a B 1
681
680
1 b B 3
682
681
2 c B 5
683
-
682
+
684
683
>>> pd.melt(df, id_vars=['A'], value_vars=['B', 'C'])
685
684
A variable value
686
685
0 a B 1
@@ -702,7 +701,7 @@ def melt(frame, id_vars=None, value_vars=None,
702
701
If you have multi-index columns:
703
702
704
703
>>> df.columns = [list('ABC'), list('DEF')]
705
- >>> df
704
+ >>> df
706
705
A B C
707
706
D E F
708
707
0 a 1 2
@@ -901,7 +900,7 @@ def get_var_names(df, regex):
901
900
return df .filter (regex = regex ).columns .tolist ()
902
901
903
902
def melt_stub (df , stub , i , j ):
904
- varnames = get_var_names (df , "^" + stub )
903
+ varnames = get_var_names (df , "^" + stub )
905
904
newdf = melt (df , id_vars = i , value_vars = varnames , value_name = stub ,
906
905
var_name = j )
907
906
newdf_j = newdf [j ].str .replace (stub , "" )
@@ -971,6 +970,7 @@ def get_dummies(data, prefix=None, prefix_sep='_', dummy_na=False):
971
970
972
971
Examples
973
972
--------
973
+ >>> import pandas as pd
974
974
>>> s = pd.Series(list('abca'))
975
975
976
976
>>> get_dummies(s)
0 commit comments