Released: 2026-04-14Supported pandas Versions: 1.1.x - 1.5.x, 2.0.x - 2.3.x, 3.0.xSupported polars Versions: 0.19.15 - latestMin Required IntelliJ Version: 2025.1
- configure plugin compatibility "until 2026.3" (min required version is now 2025.1)
Released: 2026-01-26Supported pandas Versions: 1.1.x - 1.5.x, 2.0.x - 2.3.x, 3.0.xSupported polars Versions: 0.19.15 - latestMin Required IntelliJ Version: 2023.3
All previously supported Styler methods, as well as sorting and filtering functionality, are now fully compatible with pandas 3.0.
The debug session name is now displayed in the window title, making it easier to distinguish between DataFrames from different active debug sessions that may share the same variable name.
A visual indicator (colored dot) above the table shows the current debug session state:
- 🟢 Green: Debug session is paused - DataFrame data can be loaded
- 🟠 Orange: Debug session is running - DataFrame data cannot be loaded
The plugin no longer automatically re-evaluates the viewed DataFrame on every stack frame change.
Previously, the plugin re-evaluated DataFrames and used a fingerprint mechanism to determine if the re-evaluated DataFrame matched the previously viewed one. This fingerprint approach was unreliable and could fail to detect certain cases correctly.
The plugin now retains the evaluated DataFrame reference across stack frame changes, ensuring consistent viewing of the same DataFrame instance throughout the debug session.
The plugin now uses a new JSON-based serialization format to transfer DataFrame data from Python to the IDE. In case you use a PyCharm version >= 2024.2.1 and < 2025.1, please read the workaround documentation for string truncation bugs in these PyCharm versions: WORKAROUND_PYCHARM_2024.2.1_TO_2025.1.md
Released: 2025-06-23Supported pandas Versions: 1.1.x - 1.5.x, 2.0.x - 2.3.xSupported polars Versions: 0.19.15 - latestMin Required IntelliJ Version: 2023.3
All already supported Styler methods as well as sorting and filtering are now also usable with pandas 2.3.
The plugin now offers a new dropdown to highlight numeric column values.
Available styling are:
- highlight minimum
- highlight maximum
- highlight null
- color map
- color map (diverging)
A detailed description can be found here
The values of numerical columns are now right-aligned to improve readability.
Released: 2025-01-27Supported pandas Versions: 1.1.x - 1.5.x, 2.0.x - 2.2.xSupported polars Versions: 0.19.15 - latestMin Required IntelliJ Version: 2023.3
The dtype is now displayed in the column header.
The feature can be enabled/disabled in the plugin settings.
Multilevel column names are now also listed in the code completion popup when calling code completion inside an empty list literal (e.g. df[...]).
- horizontal scrolling causes sporadic vertical scrolling (macOS)
- configure plugin compatibility "until 2025.3" (min required version is now 2023.3)
Released: 2024-10-30Supported pandas Versions: 1.1.x - 1.5.x, 2.0.x - 2.2.xSupported polars Versions: 0.19.15 - latestMin Required IntelliJ Version: 2022.3
The value of the selected cell can now be copied via:
- Ctrl + C / Command + C (macOS)
In the Python Console you can now filter the displayed DataFrame by specifying a Python filter expression.
The filter input for the Python Console uses runtime code completion.
A detailed description can be found here:
You can now filter your polars DataFrame by specifying a Python filter expression.
A detailed description can be found here.
A basic code completion was added to complete column names of a DataFrame.
A detailed description can be found here.
Released: 2024-05-06Supported pandas Versions: 1.1.x - 1.5.x, 2.0.x - 2.2.xSupported polars Versions: 0.19.15 - latestMin Required IntelliJ Version: 2022.3
Problems detected by the validation are now reported only once for an unstable styling function. Regardless if the styling function raised an exception or produced unstable styling results. Already reported unstable styling functions are now excluded from the validation to further improve the validation speed.
The validation strategies PRECISION, FAST, DISABLED are replaced by the options enabled or disabled.
This was possible because of several improvements.
If you had validation strategy
PRECISIONorFASTconfigured you have to manually enable the validation again in the plugin settings.
The leading and trailing " are now removed from all stringlike values (pl.String, pl.Categorical, pl.Enum and pl.Utf8) - excluding nested data types.
Stringlike values are truncated in case they are longer than 200 chars.
Lists are truncated if they contain more than 60 entries.
Truncated values can be longer as the documented max chars.
Their length depends on the data type of the value.
Lists, for example, always have a closing ], even if the shortened value exceeds 60 characters.
- [pandas][validation] invalid styling function from docs was not detected if strategy
FASTwas used - [pandas] Styler::highlight_between failed in case
leftorrightwas provided as 2-dimensional array
Released: 2024-03-17Supported pandas Versions: 1.1.x - 1.5.x, 2.0.x - 2.2.xSupported polars Versions: 0.19.15 - latestMin Required IntelliJ Version: 2022.3
- column statistics not updated after filtering (issue 10)
Released: 2024-03-07Supported pandas Versions: 1.1.x - 1.5.x, 2.0.x - 2.2.xSupported polars Versions: 0.19.15 - latestMin Required IntelliJ Version: 2022.3
The column tooltip now includes summary statistics about the column data.
The output will vary depending on the used version of pandas/polars.
You can view and sort polars and pandas DataFrames.
It is also possible to view Python dictionaries as a DataFrame.
- [pandas] respect
display.max_seq_itemsif it is less then 42 - [pandas] truncate
DataFramevalues in case they are longer than 200 chars - [pandas] allow to view a
dictof scalars asDataFrame - broken detection of installed
DataFramepackages (used to viewdictasDataFrame)
Released: 2024-01-20Supported pandas Versions: 1.1.x - 1.5.x, 2.0.x - 2.2.xMin Required IntelliJ Version: 2022.3
All already supported Styler methods as well as sorting and filtering are now also usable with pandas 2.2.
- [polars] broken string detection when formatting string values
- configure plugin compatibility "until 2024.3"
Released: 2023-12-21Supported pandas Versions: 1.1.x - 1.5.x, 2.0.x - 2.1.xMin Required IntelliJ Version: 2022.3
Experimental support for the lighting-fast DataFrame library polars.
You can view and sort polars DataFrames.
It is also possible to view Python dictionaries as a polars DataFrame.
The column data type is now included in the column header tooltip.
This feature is available for pandas and polars DataFrames.
Released: 2023-11-15Supported pandas Versions: 1.1.x - 1.5.x, 2.0.x - 2.1.xMin Required IntelliJ Version: 2021.3
You can now view a pandas DataFrame without having Jinja2 installed.
In the previous versions, a Styler was created from the DataFrame, for which Jinja2 had to be installed.
- replace custom value formatting logic with pandas
pprint_thing
- internal helper project
projects/html_from_stylerused to validate fetched data
- filter input: broken code completion
- The previous "filter input"-fix broke other use cases.
- use unified data structure to retrieve version-independent data from pandas
- restructure loading of Python plugin code
Released: 2023-09-18Supported pandas Versions: 1.1.x - 1.5.x, 2.0.x - 2.1.xMin Required IntelliJ Version: 2021.3
All already supported Styler methods as well as sorting and filtering are now also usable with pandas 2.1.
If pandas is installed, Python dictionaries can be displayed as a pandas DataFrame that can be sorted and filtered.
Select a Python dictionary in the debugger variable view, open the context menu and select View as Styled DataFrame.
You can display the Keys as Columns (default behavior) or Keys as Rows. If the dictionary contains the keys
index, columns, data, index_names and column_names it is displayed with orient='tight'.
This new feature is available for all supported pandas versions. A detailed description about the behavior can be found in the pandas-docs DataFrame.from_dict.
- plugin fails with Python 3.10
- filter input: in some cases attribute references couldn't be resolved
Released: 2023-03-01Supported pandas Versions: 1.1.x - 1.5.x, 2.0.xMin Required IntelliJ Version: 2021.3
All already supported Styler methods as well as sorting and filtering are now also usable with pandas 2.0.
- fix Intellij-Plugin-API warnings (deprecated API)
- configure plugin compatibility "until 2023.3"
Released: 2022-11-29Supported pandas Versions: 1.1.x - 1.5.xMin Required IntelliJ Version: 2021.3
All already supported Styler methods are now also usable with pandas 1.5.
- don't open dialog for unsupported pandas version
Released: 2022-11-22Supported pandas Versions: 1.1.x - 1.4.xMin Required IntelliJ Version: 2021.3
The DataFrame can now be filtered by specifying a Python filter expression.
A detailed description about filtering can be found here.
The dialog is now automatically closed when the debug session is terminated or the viewed DataFrame isn't
reachable anymore by the plugin.
The column width can be changed via shortcuts or by resizing the column. You can also mark a column as fixed. Marked columns keep their width even if the content would need more space or the width of the dialog is changed.
Cell values are now truncated in case they are longer than 300 chars. In the past the full cell value was displayed.
Truncated values can be longer than 300 chars.
Their length depends on the data type of the value.
Lists, for example, always have a closing ], even if the shortened value exceeds 300 characters.
- deprecated way of data fetching (HTML string) and the feature switch to re-enable it
- dependencies to parse HTML and CSS strings
- internal helper project
projects/extract_computed_cssused to validate computed css
- no data fetching from
DataFrameafter continue from breakpoint - false positive when validating styling functions in combination with hidden rows/columns
- plugin logo added to the notifications sent by the plugin
- name of viewed variable is displayed as dialog title
- number of rows and columns of the
DataFrameare displayed on the left side below the displayed data
Released: 2022-07-25Supported pandas Versions: 1.1.x - 1.4.xMin Required IntelliJ Version: 2020.3
The DataFrame columns are now sortable. The multi-column sorting supports up to 9 columns.
Sorting can be performed by mouse click on the column headers or by keyboard shortcuts.
A detailed description about sorting can be found here.
The plugin already had some very useful keyboard shortcuts. These are now documented: Keyboard Shortcuts
- use
Disposer.disposeinstead of calling directlydispose - restrict width of error message dialog
- wrong truncated python error message
- broken detection of "debugger disconnected" exception
- upgrade
kotlinx-serialization-jsonfor better performance
Released: 2022-07-03Supported pandas Versions: 1.1.x - 1.4.xMin Required IntelliJ Version: 2020.3
To get rid of custom parsing code, nearly all data is now fetched from Python as a JSON string. This also affects the fetching of the rendered HTML, generated by pandas, for a chunk.
Switching from HTML to a custom JSON format may cause some problems. This is the reason why this feature is implemented with a feature switch. It is enabled by default. If you disable the feature, the HTML will be loaded as before.
In case you run into any problem please let me know and open an issue on GitHub. It is planned to switch completely to JSON in one of the next versions, this depends on feedback.
To switch back to the old behavior, you have to open the settings dialog, select IntelliJ IDEA | Preferences for macOS or File | Settings for Windows and Linux. Alternatively, press Ctrl + Alt + S.
Under the section Tools you will find the entry Styled DataFrame Viewer.
The feature switch is called: Use new data structure when loading chunks
- fetching data from Python as HTML strings
- exclude custom styling functions registered via
Styler.applymapfrom styling-function validation- these styling functions take a scalar and do not get a chunk at runtime
- minor fixes in python validation code
Released: 2022-06-24Supported pandas Versions: 1.1.x - 1.4.xMin Required IntelliJ Version: 2020.3
Since the plugin generates the rendered output of a DataFrame chunk-wise, custom styling functions have to handle chunks correctly.
You can read more about it here: The Problem
Ensuring that custom functions, registered via Styler.apply, work properly can be time-consuming and in some cases very cumbersome.
The plugin now offers the possibility to validate styling functions automatically in the background.
The feature is currently in experimental status. Please let me know if anything is not working, feedback of any kind is welcome.
Curious? Here we go
- small cell height (cells now have an extra top and bottom padding)
- fix Intellij-Plugin-API warnings
- upgrade dependency
jsoupto 1.15.1
Released: 2022-02-23Supported pandas Versions: 1.1.x - 1.4.xMin Required IntelliJ Version: 2020.3
All already supported Styler methods are now also usable with pandas 1.4.
Some of them got additional parameters, which are also supported.
Styler.applyStyler.applymapStyler.background_gradientStyler.formatStyler.highlight_maxStyler.highlight_minStyler.highlight_nullStyler.set_propertiesStyler.highlight_betweenStyler.highlight_quantileStyler.text_gradientStyler.hide_index(deprecated in pandas 1.4)Styler.hide_columns(deprecated in pandas 1.4)Styler.hide(added in pandas 1.4)
Pandas builtin Styler::background_gradient generates a background color for each cell of the DataFrame.
To reduce the time needed to fetch and parse the displayed data, the number of elements which are fetched from the underlying DataFrame in one step was reduced by half from 60x20 (rowsxcols) to 30x20.
There are also some minor improvements, such as fixing multiple parsing of same data.
The changes apply for all supported builtin style methods and not only for Styler::background_gradient.
However, the difference is hardly noticeable with the other supported builtin methods.
- terminate ExecutorService, used for data fetching, on window close
In the past, a new version of the plugin had to be released for each new IntelliJ minor-version to ensure that there were no breaking API changes. So far I could not find any plugin issue related to a new IntelliJ version. As of this release, plugin compatibility will be configured to work until the next IntelliJ major release (next will be 2023). In case of an incompatibility problem I will release a new version.
Released: 2021-12-01Supported pandas Versions: 1.1.x - 1.3.xMin Required IntelliJ Version: 2020.3
The source code of the plugin is finally available. This was planned for quite a while, but it took some time to improve the testability of the plugin beforehand.
- compatibility with IntelliJ 2021.3
- upgrade dependency
jsoupto 1.14.3
Released: 2021-09-19Supported pandas Versions: 1.1.x - 1.3.xMin Required IntelliJ Version: 2020.3
It's now possible to hide specific rows and columns from a DataFrame by using these new supported methods.
Please note that the behavior may vary depending on the version of pandas you are using (behavior was changed in pandas 1.3.0).
A more detailed description with examples can be found in the official pandas API reference:
The behavior of Styler.highlight_min and Styler.highlight_max has been changed as part of a bug fix in pandas.
Therefore, the plugin could no longer patch these methods because it wasn't able to detect these two built-in styles.
- upgrade dependency
jsoupto 1.14.2
Released: 2021-07-27Supported pandas Versions: 1.1.x - 1.3.xMin Required IntelliJ Version: 2020.3
All already by the plugin supported Styler methods are now also usable with pandas 1.3.
Styler.applyStyler.applymapStyler.background_gradientStyler.formatStyler.highlight_maxStyler.highlight_minStyler.highlight_nullStyler.set_properties
Some of them got additional parameters, which are also supported.
And the following methods, added in pandas 1.3, are also on board:
Styler.highlight_betweenStyler.highlight_quantileStyler.text_gradient
Revised column header parsing and rendering to improve handling of multi-index DataFrames.
Index names of multi-index DataFrames are now included in the header tooltip. Before it was not possible to see this information.
Code of the multi-index DataFrame example:
import pandas as pd
import numpy as np
np.random.seed(123456)
# hierarchical indices and columns
df = pd.DataFrame(
data=np.round(np.random.randn(4, 6), 1),
index=pd.MultiIndex.from_product([[2013, 2014], [1, 2]], names=['year', 'visit']),
columns=pd.MultiIndex.from_product([['Bob', 'Guido', 'Sue'], ['HR', 'Temp']], names=['subject', 'type'])
)
styler = df.style
breakpoint()The size of the html file generated in Python has been reduced. Unused content is now excluded, which can reduce the size of the generated html file. The reduction depends on the used styling.
In the last two versions of the plugin, a lot of the code was rewritten to provide better testing capabilities. Almost all tests previously performed manually are now automated.
- plugin logo added
- compatibility with IntelliJ 2021.2
- upgrade dependency
jsoupto 1.14.1
Released: 2021-06-20Supported pandas Versions: 1.1.x - 1.2.xMin Required IntelliJ Version: 2020.3 (previous plugin version was: 2019.2)
During the last months I started to rewrite large parts of the plugin to increase the maintainability and to build the foundation for faster implementation of new features.
This is a screenshot of the branch which contains all the changes for this version:
Most of the changed files, 4743 of them, are generated test resources which are used by the new added unit tests.
DataFrames with multi-index column labels are now supported. Multi-index labels are separated by a / when displayed.
Column labels are now evaluated on demand, and not all at once. This allows to view DataFrames with many columns.
The applied styles of a DataFrame are now always patched.
In the previous version there were two ways of fetching and patching, depending on the size of the DataFrame.
The rule was:
DataFramewith > 500 rows -> styles were patched and data was fetched in chunksDataFramewith <= 500 rows -> data was fetched in one step without patching styles
This can lead to different results, especially in the previous version of the plugin.
It can also be irritating for users, if some DataFrames seem to show the expected result and sometimes (> 500 rows) not.
To have a constant behavior, styles are always patched before data is fetched.
Released: 2021-02-07Supported pandas Versions: 1.1.x - 1.2.xMin Required IntelliJ Version: 2019.2
Initial release of the plugin.



