Comments (1)
Thanks for raising the issue. The problem is with None value handling in MultiIndex::insert
.
In the example code, df["one", None, "yes"] = 1
calls MultiIndex::insert
, and the MultiIndex
object gets updated to:
MultiIndex::insert 1 ('one', None, 'yes')
# before
levels [['one'], ['a'], ['yes']]
codes [[0], [0], [0]]
# updated
new_levels [['one'], ['a', None], ['yes']]
new_codes [[0, 0], [0, 1], [0, 0]]
While if the None value is inserted correctly, for example, using df.concat
as you have mentioned, the MultiIndex
object should be updated to:
# df
MultiIndex([('one', 'a', 'yes')],
)
levels: [['one'], ['a'], ['yes']], codes: [[0], [0], [0]]
# df_add
MultiIndex([('one', nan, 'yes')],
)
levels: [['one'], [], ['yes']], codes: [[0], [-1], [0]]
# df_concat
MultiIndex([('one', 'a', 'yes'),
('one', nan, 'yes')],
)
levels: [['one'], ['a'], ['yes']], codes: [[0, 0], [0, -1], [0, 0]]
, where if key is NA value, location of index unify as -1.
I have submitted PR #59069 which will hopefully resolve this issue.
from pandas.
Related Issues (20)
- BUG: Parameter converters when using the read function. HOT 2
- BUG: read_parquet wrongly returns empty index if asked to read empty column list HOT 2
- ENH/BUG: pd.date_range() still defaults to nanosecond resolution HOT 1
- ENH: New Name for "numpy_nullable" dtype_backend HOT 1
- BUG: `DatetimeIndex.union` gives wrong result with "datetime64[us]"
- BUILD: Pandas 1.2.5 build no longer works HOT 13
- ENH: .isin() method should use __contains__ rather than __iter__ for user-defined classes to determine presence. HOT 6
- BUG: `pd.read_excel` gives uninformative error for protected files HOT 2
- BUG: eval fails to process expression when one column name starts with a digit or some special characters HOT 1
- BUG: pandas dataframe column definition or mapping does not cater for upper case values. HOT 1
- BUG: HOT 2
- BUG: Limit param of fillna method does not work for pd.Int64Dtype() HOT 2
- BUG: Failed to import pandas <2.1.0 witn numpy >=2.0.0 HOT 4
- BUG: `Series.clip` does not work with scalar numpy arrays. HOT 4
- BUG: `DataFrame.to_numpy()` unnecessarily upcasts to `object` dtype. HOT 1
- ENH: Python 3.13 free-threading support HOT 3
- BUG: Pandas does not validate some parameters properly when reading CSVs and it causes segmentation faults
- BUG:
- BUG: `DataFrame.eval` fails with TypeError with multiline expr but works when `eval` line by line
- BUG: `DataFrame.sparse.from_spmatrix` hard codes an invalid ``fill_value`` for certain subtypes
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pandas.