Skip to content

Commit 7844193

Browse files
itholicHyukjinKwon
authored andcommitted
Setting index name / names for Series (#1079)
Unlike pandas, `koalas.Series` can't set the index name like below. ```python >>> pser = pd.Series([1, 2, 3, 4, 5]) >>> pser.index.name = 'koalas' >>> pser.index.name 'koalas' >>> kser = ks.Series([1, 2, 3, 4, 5]) >>> kser.index.name = 'koalas' >>> kser.index.name ``` For MultiIndex also ```python >>> midx = pd.MultiIndex([['lama', 'cow', 'falcon'], ... ['speed', 'weight', 'length']], ... [[0, 0, 0, 1, 1, 1, 2, 2, 2], ... [0, 1, 2, 0, 1, 2, 0, 1, 2]]) >>> pser = pd.Series([45, 200, 1.2, 30, 250, 1.5, 320, 1, 0.3], index=midx) >>> pser.index.names FrozenList([None, None]) >>> pser.index.names = ['hello', 'koalas'] >>> pser.index.names FrozenList(['hello', 'koalas']) >>> midx = pd.MultiIndex([['lama', 'cow', 'falcon'], ... ['speed', 'weight', 'length']], ... [[0, 0, 0, 1, 1, 1, 2, 2, 2], ... [0, 1, 2, 0, 1, 2, 0, 1, 2]]) >>> kser = ks.Series([45, 200, 1.2, 30, 250, 1.5, 320, 1, 0.3], index=midx) >>> kser.index.names [None, None] >>> kser.index.names = ['hello', 'koalas'] >>> kser.index.names [None, None] ``` So, this PR suggests that make ours possible also. ```python >>> kser = ks.Series([1, 2, 3, 4, 5]) >>> kser.index.name = 'koalas' >>> kser.index.name 'koalas' >>> midx = pd.MultiIndex([['lama', 'cow', 'falcon'], ... ['speed', 'weight', 'length']], ... [[0, 0, 0, 1, 1, 1, 2, 2, 2], ... [0, 1, 2, 0, 1, 2, 0, 1, 2]]) >>> kser = ks.Series([45, 200, 1.2, 30, 250, 1.5, 320, 1, 0.3], index=midx) >>> kser.index.names [None, None] >>> kser.index.names = ['hello', 'koalas'] >>> kser.index.names ['hello', 'koalas'] ```
1 parent 2bd7adc commit 7844193

File tree

2 files changed

+16
-3
lines changed

2 files changed

+16
-3
lines changed

databricks/koalas/series.py

+1-3
Original file line numberDiff line numberDiff line change
@@ -958,13 +958,11 @@ def rename(self, index: Union[str, Tuple[str, ...]] = None, **kwargs):
958958
def index(self):
959959
"""The index (axis labels) Column of the Series.
960960
961-
Currently not supported when the DataFrame has no index.
962-
963961
See Also
964962
--------
965963
Index
966964
"""
967-
return self.to_frame().index
965+
return self._kdf.index
968966

969967
@property
970968
def is_unique(self):

databricks/koalas/tests/test_series.py

+15
Original file line numberDiff line numberDiff line change
@@ -894,6 +894,21 @@ def test_keys(self):
894894

895895
self.assert_eq(kser.keys(), pser.keys())
896896

897+
def test_index(self):
898+
# to check setting name of Index properly.
899+
idx = pd.Index([1, 2, 3, 4, 5, 6, 7, 8, 9])
900+
kser = ks.Series([45, 200, 1.2, 30, 250, 1.5, 320, 1, 0.3], index=idx)
901+
pser = kser.to_pandas()
902+
903+
kser.name = 'koalas'
904+
pser.name = 'koalas'
905+
self.assert_eq(kser.index.name, pser.index.name)
906+
907+
# for check setting names of MultiIndex properly.
908+
kser.names = ['hello', 'koalas']
909+
pser.names = ['hello', 'koalas']
910+
self.assert_eq(kser.index.names, pser.index.names)
911+
897912
def test_pct_change(self):
898913
kser = ks.Series([90, 91, 85], index=[2, 4, 1])
899914
pser = kser.to_pandas()

0 commit comments

Comments
 (0)