Skip to content

Loss of index name when using concat function #22495

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
FANGOD opened this issue Aug 24, 2018 · 2 comments
Closed

Loss of index name when using concat function #22495

FANGOD opened this issue Aug 24, 2018 · 2 comments
Labels
Duplicate Report Duplicate issue or pull request

Comments

@FANGOD
Copy link
Contributor

FANGOD commented Aug 24, 2018

My code

import pandas as pd


df3 = pd.DataFrame({"sip":["a","b","c","d"],"h3":[6.0,7.0,9.0,0.0]}).set_index("sip")
df4 = pd.DataFrame({"sip":["a","b","c","d"],"h3":[6.0,7.0,9.0,0.0]}).set_index("sip")
df5 = pd.DataFrame({"sip5":["a","b","c","d"],"h3":[6.0,7.0,9.0,0.0]}).set_index("sip5")
df6 = pd.DataFrame({"sip5":["a","b","d","e"],"h3":[6.0,7.0,9.0,0.0]}).set_index("sip5")
x = [df3, df4]
y = [df5, df6]

print pd.concat(x, axis=1)
      h3   h3
sip
a    6.0  6.0
b    7.0  7.0
c    9.0  9.0
d    0.0  0.0

print pd.concat(y, axis=1)
    h3   h3
a  6.0  6.0
b  7.0  7.0
c  9.0  NaN
d  0.0  9.0
e  NaN  0.0

Problem description

Y loses index name because the index of two df is different, but index's name is the same. So I think we should add a index name to df after concat. In addition, I also think that when people use concat to connect dfs with different indexes, the index and index names may be different. Of course, the index name should be consistent and better.
My use of the scene, each concat different ips table, the ip in each table may be different, when I concat, index name is None.

My solution:
1.If the index of multiple df is different, copy the index name of the first df to the df after concat, no matter whether the index of multiple df is different or the index name is different, it is feasible.
2.When the index name of conat dfs is the same, add index name.

Output of pd.show_versions()

INSTALLED VERSIONS

commit: None
python: 2.7.13.final.0
python-bits: 64
OS: Windows
OS-release: 10
machine: AMD64
processor: Intel64 Family 6 Model 58 Stepping 9, GenuineIntel
byteorder: little
LC_ALL: None
LANG: None
LOCALE: None.None

pandas: 0.20.1
pytest: 3.0.7
pip: 9.0.1
setuptools: 27.2.0
Cython: 0.25.2
numpy: 1.12.1
scipy: 0.19.0
xarray: None
IPython: 5.3.0
sphinx: 1.5.6
patsy: 0.4.1
dateutil: 2.6.0
pytz: 2017.2
blosc: None
bottleneck: 1.2.1
tables: 3.2.2
numexpr: 2.6.2
feather: None
matplotlib: 2.0.2
openpyxl: 2.4.7
xlrd: 1.0.0
xlwt: 1.2.0
xlsxwriter: 0.9.6
lxml: 3.7.3
bs4: 4.6.0
html5lib: 0.999
sqlalchemy: 1.1.9
pymysql: None
psycopg2: None
jinja2: 2.9.6
s3fs: None
pandas_gbq: None
pandas_datareader: None

@FANGOD

This comment was marked as resolved.

@WillAyd WillAyd added the Duplicate Report Duplicate issue or pull request label Aug 24, 2018
@WillAyd
Copy link
Member

WillAyd commented Aug 24, 2018

Duplicate of #21629

@WillAyd WillAyd marked this as a duplicate of #21629 Aug 24, 2018
@WillAyd WillAyd closed this as completed Aug 24, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Duplicate Report Duplicate issue or pull request
Projects
None yet
Development

No branches or pull requests

2 participants