@@ -31,23 +31,46 @@ def setUp(self):
31
31
self .df1 .columns = [list ('ABC' ), list ('abc' )]
32
32
self .df1 .columns .names = ['CAP' , 'low' ]
33
33
34
- def test_default_col_names (self ):
34
+ def test_top_level_method (self ):
35
35
result = melt (self .df )
36
36
self .assertEqual (result .columns .tolist (), ['variable' , 'value' ])
37
37
38
- result1 = melt (self .df , id_vars = ['id1' ])
38
+ def test_method_signatures (self ):
39
+ tm .assert_frame_equal (self .df .melt (),
40
+ melt (self .df ))
41
+
42
+ tm .assert_frame_equal (self .df .melt (id_vars = ['id1' , 'id2' ],
43
+ value_vars = ['A' , 'B' ]),
44
+ melt (self .df ,
45
+ id_vars = ['id1' , 'id2' ],
46
+ value_vars = ['A' , 'B' ]))
47
+
48
+ tm .assert_frame_equal (self .df .melt (var_name = self .var_name ,
49
+ value_name = self .value_name ),
50
+ melt (self .df ,
51
+ var_name = self .var_name ,
52
+ value_name = self .value_name ))
53
+
54
+ tm .assert_frame_equal (self .df1 .melt (col_level = 0 ),
55
+ melt (self .df1 , col_level = 0 ))
56
+
57
+ def test_default_col_names (self ):
58
+ result = self .df .melt ()
59
+ self .assertEqual (result .columns .tolist (), ['variable' , 'value' ])
60
+
61
+ result1 = self .df .melt (id_vars = ['id1' ])
39
62
self .assertEqual (result1 .columns .tolist (), ['id1' , 'variable' , 'value'
40
63
])
41
64
42
- result2 = melt ( self .df , id_vars = ['id1' , 'id2' ])
65
+ result2 = self .df . melt ( id_vars = ['id1' , 'id2' ])
43
66
self .assertEqual (result2 .columns .tolist (), ['id1' , 'id2' , 'variable' ,
44
67
'value' ])
45
68
46
69
def test_value_vars (self ):
47
- result3 = melt ( self .df , id_vars = ['id1' , 'id2' ], value_vars = 'A' )
70
+ result3 = self .df . melt ( id_vars = ['id1' , 'id2' ], value_vars = 'A' )
48
71
self .assertEqual (len (result3 ), 10 )
49
72
50
- result4 = melt ( self .df , id_vars = ['id1' , 'id2' ], value_vars = ['A' , 'B' ])
73
+ result4 = self .df . melt ( id_vars = ['id1' , 'id2' ], value_vars = ['A' , 'B' ])
51
74
expected4 = DataFrame ({'id1' : self .df ['id1' ].tolist () * 2 ,
52
75
'id2' : self .df ['id2' ].tolist () * 2 ,
53
76
'variable' : ['A' ] * 10 + ['B' ] * 10 ,
@@ -66,8 +89,8 @@ def test_value_vars_types(self):
66
89
columns = ['id1' , 'id2' , 'variable' , 'value' ])
67
90
68
91
for type_ in (tuple , list , np .array ):
69
- result = melt ( self .df , id_vars = ['id1' , 'id2' ],
70
- value_vars = type_ (('A' , 'B' )))
92
+ result = self .df . melt ( id_vars = ['id1' , 'id2' ],
93
+ value_vars = type_ (('A' , 'B' )))
71
94
tm .assert_frame_equal (result , expected )
72
95
73
96
def test_vars_work_with_multiindex (self ):
@@ -78,7 +101,7 @@ def test_vars_work_with_multiindex(self):
78
101
'value' : self .df1 [('B' , 'b' )],
79
102
}, columns = [('A' , 'a' ), 'CAP' , 'low' , 'value' ])
80
103
81
- result = melt ( self .df1 , id_vars = [('A' , 'a' )], value_vars = [('B' , 'b' )])
104
+ result = self .df1 . melt ( id_vars = [('A' , 'a' )], value_vars = [('B' , 'b' )])
82
105
tm .assert_frame_equal (result , expected )
83
106
84
107
def test_tuple_vars_fail_with_multiindex (self ):
@@ -93,26 +116,26 @@ def test_tuple_vars_fail_with_multiindex(self):
93
116
for id_vars , value_vars in ((tuple_a , list_b ), (list_a , tuple_b ),
94
117
(tuple_a , tuple_b )):
95
118
with tm .assertRaisesRegexp (ValueError , r'MultiIndex' ):
96
- melt ( self .df1 , id_vars = id_vars , value_vars = value_vars )
119
+ self .df1 . melt ( id_vars = id_vars , value_vars = value_vars )
97
120
98
121
def test_custom_var_name (self ):
99
- result5 = melt ( self .df , var_name = self .var_name )
122
+ result5 = self .df . melt ( var_name = self .var_name )
100
123
self .assertEqual (result5 .columns .tolist (), ['var' , 'value' ])
101
124
102
- result6 = melt ( self .df , id_vars = ['id1' ], var_name = self .var_name )
125
+ result6 = self .df . melt ( id_vars = ['id1' ], var_name = self .var_name )
103
126
self .assertEqual (result6 .columns .tolist (), ['id1' , 'var' , 'value' ])
104
127
105
- result7 = melt ( self .df , id_vars = ['id1' , 'id2' ], var_name = self .var_name )
128
+ result7 = self .df . melt ( id_vars = ['id1' , 'id2' ], var_name = self .var_name )
106
129
self .assertEqual (result7 .columns .tolist (), ['id1' , 'id2' , 'var' ,
107
130
'value' ])
108
131
109
- result8 = melt ( self .df , id_vars = ['id1' , 'id2' ], value_vars = 'A' ,
110
- var_name = self .var_name )
132
+ result8 = self .df . melt ( id_vars = ['id1' , 'id2' ], value_vars = 'A' ,
133
+ var_name = self .var_name )
111
134
self .assertEqual (result8 .columns .tolist (), ['id1' , 'id2' , 'var' ,
112
135
'value' ])
113
136
114
- result9 = melt ( self .df , id_vars = ['id1' , 'id2' ], value_vars = ['A' , 'B' ],
115
- var_name = self .var_name )
137
+ result9 = self .df . melt ( id_vars = ['id1' , 'id2' ], value_vars = ['A' , 'B' ],
138
+ var_name = self .var_name )
116
139
expected9 = DataFrame ({'id1' : self .df ['id1' ].tolist () * 2 ,
117
140
'id2' : self .df ['id2' ].tolist () * 2 ,
118
141
self .var_name : ['A' ] * 10 + ['B' ] * 10 ,
@@ -122,24 +145,24 @@ def test_custom_var_name(self):
122
145
tm .assert_frame_equal (result9 , expected9 )
123
146
124
147
def test_custom_value_name (self ):
125
- result10 = melt ( self .df , value_name = self .value_name )
148
+ result10 = self .df . melt ( value_name = self .value_name )
126
149
self .assertEqual (result10 .columns .tolist (), ['variable' , 'val' ])
127
150
128
- result11 = melt ( self .df , id_vars = ['id1' ], value_name = self .value_name )
151
+ result11 = self .df . melt ( id_vars = ['id1' ], value_name = self .value_name )
129
152
self .assertEqual (result11 .columns .tolist (), ['id1' , 'variable' , 'val' ])
130
153
131
- result12 = melt ( self .df , id_vars = ['id1' , 'id2' ],
132
- value_name = self .value_name )
154
+ result12 = self .df . melt ( id_vars = ['id1' , 'id2' ],
155
+ value_name = self .value_name )
133
156
self .assertEqual (result12 .columns .tolist (), ['id1' , 'id2' , 'variable' ,
134
157
'val' ])
135
158
136
- result13 = melt ( self .df , id_vars = ['id1' , 'id2' ], value_vars = 'A' ,
137
- value_name = self .value_name )
159
+ result13 = self .df . melt ( id_vars = ['id1' , 'id2' ], value_vars = 'A' ,
160
+ value_name = self .value_name )
138
161
self .assertEqual (result13 .columns .tolist (), ['id1' , 'id2' , 'variable' ,
139
162
'val' ])
140
163
141
- result14 = melt ( self .df , id_vars = ['id1' , 'id2' ], value_vars = ['A' , 'B' ],
142
- value_name = self .value_name )
164
+ result14 = self .df . melt ( id_vars = ['id1' , 'id2' ], value_vars = ['A' , 'B' ],
165
+ value_name = self .value_name )
143
166
expected14 = DataFrame ({'id1' : self .df ['id1' ].tolist () * 2 ,
144
167
'id2' : self .df ['id2' ].tolist () * 2 ,
145
168
'variable' : ['A' ] * 10 + ['B' ] * 10 ,
@@ -151,26 +174,29 @@ def test_custom_value_name(self):
151
174
152
175
def test_custom_var_and_value_name (self ):
153
176
154
- result15 = melt ( self .df , var_name = self .var_name ,
155
- value_name = self .value_name )
177
+ result15 = self .df . melt ( var_name = self .var_name ,
178
+ value_name = self .value_name )
156
179
self .assertEqual (result15 .columns .tolist (), ['var' , 'val' ])
157
180
158
- result16 = melt ( self .df , id_vars = ['id1' ], var_name = self .var_name ,
159
- value_name = self .value_name )
181
+ result16 = self .df . melt ( id_vars = ['id1' ], var_name = self .var_name ,
182
+ value_name = self .value_name )
160
183
self .assertEqual (result16 .columns .tolist (), ['id1' , 'var' , 'val' ])
161
184
162
- result17 = melt (self .df , id_vars = ['id1' , 'id2' ],
163
- var_name = self .var_name , value_name = self .value_name )
185
+ result17 = self .df .melt (id_vars = ['id1' , 'id2' ],
186
+ var_name = self .var_name ,
187
+ value_name = self .value_name )
164
188
self .assertEqual (result17 .columns .tolist (), ['id1' , 'id2' , 'var' , 'val'
165
189
])
166
190
167
- result18 = melt (self .df , id_vars = ['id1' , 'id2' ], value_vars = 'A' ,
168
- var_name = self .var_name , value_name = self .value_name )
191
+ result18 = self .df .melt (id_vars = ['id1' , 'id2' ], value_vars = 'A' ,
192
+ var_name = self .var_name ,
193
+ value_name = self .value_name )
169
194
self .assertEqual (result18 .columns .tolist (), ['id1' , 'id2' , 'var' , 'val'
170
195
])
171
196
172
- result19 = melt (self .df , id_vars = ['id1' , 'id2' ], value_vars = ['A' , 'B' ],
173
- var_name = self .var_name , value_name = self .value_name )
197
+ result19 = self .df .melt (id_vars = ['id1' , 'id2' ], value_vars = ['A' , 'B' ],
198
+ var_name = self .var_name ,
199
+ value_name = self .value_name )
174
200
expected19 = DataFrame ({'id1' : self .df ['id1' ].tolist () * 2 ,
175
201
'id2' : self .df ['id2' ].tolist () * 2 ,
176
202
self .var_name : ['A' ] * 10 + ['B' ] * 10 ,
@@ -182,17 +208,17 @@ def test_custom_var_and_value_name(self):
182
208
183
209
df20 = self .df .copy ()
184
210
df20 .columns .name = 'foo'
185
- result20 = melt (df20 )
211
+ result20 = df20 . melt ()
186
212
self .assertEqual (result20 .columns .tolist (), ['foo' , 'value' ])
187
213
188
214
def test_col_level (self ):
189
- res1 = melt ( self .df1 , col_level = 0 )
190
- res2 = melt ( self .df1 , col_level = 'CAP' )
215
+ res1 = self .df1 . melt ( col_level = 0 )
216
+ res2 = self .df1 . melt ( col_level = 'CAP' )
191
217
self .assertEqual (res1 .columns .tolist (), ['CAP' , 'value' ])
192
218
self .assertEqual (res2 .columns .tolist (), ['CAP' , 'value' ])
193
219
194
220
def test_multiindex (self ):
195
- res = pd . melt ( self .df1 )
221
+ res = self .df1 . melt ( )
196
222
self .assertEqual (res .columns .tolist (), ['CAP' , 'low' , 'value' ])
197
223
198
224
0 commit comments