-
- Notifications
You must be signed in to change notification settings - Fork 19.3k
Closed
Labels
Description
Code Sample, a copy-pastable example if possible
modified from TestMergeMulti.test_join_multi_levels
import pandas as pd household = ( pd.DataFrame( dict(A=[1, 2, 3], B=[0, 1, 0], C=[19.3, 31.7, 29]), columns=['A', 'B', 'C']) .set_index('A')) portfolio = ( pd.DataFrame( dict(A=[1, 2, 2, 3, 3, 3, 4], d=["nl0", "nl3", "gb0", "gb0", "lu4", "nl5", 'EMPTY'], e=["ABN", "Robeco", "Royal", "Royal", "AAB", "Postbank", 'EMPTY'], f=[1.0, 0.4, 0.6, 0.15, 0.6, 0.25, 1.0]), columns=['A', 'd', 'e', 'f']) .set_index(['A', 'd'])) result = household.join(portfolio, how='inner') print household B C A 1 0 19.3 2 1 31.7 3 0 29.0 print portfolio e f A d 1 nl0 ABN 1.00 2 nl3 Robeco 0.40 gb0 Royal 0.60 3 gb0 Royal 0.15 lu4 AAB 0.60 nl5 Postbank 0.25 4 EMPTY EMPTY 1.00 print result B C e f A d 1 nl0 0 19.3 ABN 1.00 2 nl3 1 31.7 Robeco 0.40 gb0 1 31.7 Royal 0.60 3 gb0 0 29.0 Royal 0.15 lu4 0 29.0 AAB 0.60 nl5 0 29.0 Postbank 0.25 print result.columns MultiIndex(levels=[[1, 2, 3], [u'EMPTY', u'gb0', u'lu4', u'nl0', u'nl3', u'nl5']], labels=[[0, 1, 1, 2, 2, 2], [3, 4, 1, 1, 2, 5]], names=[u'A', u'd']) Problem description
The result looks okay but I think the 'EMPTY' should be dropped from the MultiIndex.
Expected Output
MultiIndex(levels=[[1, 2, 3], [ u'gb0', u'lu4', u'nl0', u'nl3', u'nl5']], labels=[[0, 1, 1, 2, 2, 2], [2, 3, 0, 0, 1, 4]], names=[u'A', u'd']) Output of pd.show_versions()
INSTALLED VERSIONS ------------------ commit: None python: 2.7.13.final.0 python-bits: 64 OS: Darwin OS-release: 16.5.0 machine: x86_64 processor: i386 byteorder: little LC_ALL: None LANG: en_US.UTF-8 LOCALE: None.None
pandas: 0.19.2
nose: 1.3.7
pip: 9.0.1
setuptools: 27.2.0
Cython: 0.25.2
numpy: 1.11.3
scipy: 0.18.1
statsmodels: 0.6.1
xarray: None
IPython: 5.1.0
sphinx: 1.5.1
patsy: 0.4.1
dateutil: 2.6.0
pytz: 2016.10
blosc: None
bottleneck: 1.2.0
tables: 3.3.0
numexpr: 2.6.1
matplotlib: 2.0.0
openpyxl: 2.4.1
xlrd: 1.0.0
xlwt: 1.2.0
xlsxwriter: 0.9.6
lxml: 3.7.2
bs4: 4.5.3
html5lib: None
httplib2: None
apiclient: None
sqlalchemy: 1.1.5
pymysql: None
psycopg2: None
jinja2: 2.9.4
boto: 2.45.0
pandas_datareader: None