Giter Site home page Giter Site logo

Comments (6)

yuji38kwmt avatar yuji38kwmt commented on September 26, 2024 1

@rajnee28

can you pls provide folder path for this issue.

The bug does not depend on folder path.

For example, you can reproduce the bug in IPython.

In [59]: import pandas
    ...:
    ...: df1=pandas.DataFrame({("A",""):[1,2,3]},index=["x","y","z"])
    ...: df2=pandas.DataFrame({("B",""):[11,12,13]},index=["x","y","z"])
    ...:
    ...: df3 = df1.join(df2)
    ...:
    ...: print(f"{df3.columns=}")
df3.columns=Index([slice(None, None, None), slice(None, None, None)], dtype='object')

from pandas.

rhshadrach avatar rhshadrach commented on September 26, 2024 1

Confirmed that this still exists on 2.2.1, but not yet on main. Further investigations and PRs to fix are welcome!

from pandas.

rajnee28 avatar rajnee28 commented on September 26, 2024

@yuji38kwmt - can you pls provide folder path for this issue.

from pandas.

Groni3000 avatar Groni3000 commented on September 26, 2024

I don't know what causes the problem, but concat is a little workaround:

df3 = pd.concat([df1, df2], axis=1) #there is join options too

from pandas.

yuji38kwmt avatar yuji38kwmt commented on September 26, 2024

The following code behaved expectedly.

In [89]: import pandas
    ...:
    ...: df1=pandas.DataFrame({("A","X"):[1,2,3]},index=["x","y","z"])
    ...: df2=pandas.DataFrame({("B","Y"):[11,12,13]},index=["x","y","z"])
    ...:
    ...: df3 = df1.join(df2)

In [90]: print(f"{df3.columns=}")
df3.columns=MultiIndex([('A', 'X'),
            ('B', 'Y')],
           )

Apparently the problem occurs when the key with label 1 is an empty string.

from pandas.

yuji38kwmt avatar yuji38kwmt commented on September 26, 2024

I did a litter investigated the bug.

The following code creates a pd.Series containing index which of name is slice(None, None, None).
https://github.com/pandas-dev/pandas/blob/v2.2.1/pandas/core/reshape/merge.py#L837-L838

Trial1

  • Python 3.12.1
  • pandas 2.2.1
In [21]: df=pandas.DataFrame({"A":[1,2,3]},index=["x","y","z"])

In [22]: df[:]
Out[22]:
   A
x  1
y  2
z  3

In [24]: df[:].columns
Out[24]: Index(['A'], dtype='object')



In [25]: df11=pandas.DataFrame({("A","x"):[1,2,3]},index=["x","y","z"])

In [26]: df11[:]
Out[26]:
   x
x  1
y  2
z  3

In [27]: df11[:].columns
Out[27]: Index(['x'], dtype='object')

In [28]: df12=pandas.DataFrame({("A",""):[1,2,3]},index=["x","y","z"])

# Look at the code !
In [29]: df12[:]
Out[29]:
x    1
y    2
z    3
Name: slice(None, None, None), dtype: int64

In [30]: type(df12[:])
Out[30]: pandas.core.series.Series

Trial2

  • Python 3.11.7
  • pandas 2.2.1
In [3]: df11=pandas.DataFrame({("A","x"):[1,2,3]},index=["x","y","z"])

In [4]: df11[:]
Out[4]:
   A
   x
x  1
y  2
z  3

In [5]: df11[:].columns
Out[5]:
MultiIndex([('A', 'x')],
           )

In [6]: df12=pandas.DataFrame({("A",""):[1,2,3]},index=["x","y","z"])

In [7]: df12[:]
Out[7]:
   A

x  1
y  2
z  3

In [8]: df12[:].columns
Out[8]:
MultiIndex([('A', '')],
           )

from pandas.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.