如何使 Pandas DataFrame (Python) 以二维 (2-D) 矩阵格式显示每个单元格

2023-12-12

我正在尝试使用 Python 中导入的 Matlab 结构创建二维 (2-D) 数据结构。

当我使用 pandas.DataFrame 时,每个单元格都包含一个矩阵,但是它们以列表格式显示。我正在尝试将其更改为矩阵格式。

使用以下代码,Python 中的 DataFrame 看起来类似: (但是,它不一样,因为真实数据是从 Matlab 导入的,并且会有不同的类型,我无法使用 python 重新创建它)

import pandas as pd
k=[[0,1,2,3,4,5,6]]
df=pd.DataFrame(k)
df[:] = df[:].astype('object')
df.at[0,0] = [[1]]
df.at[0,1] = [[1.0,2.0],[2.0,4.0],[8.0,3.0],[9.0,7.0]]
df.at[0,2] = [[0.487],[1.532],[1.544],[1.846]]
df.at[0,3] = [[3.0]]
df.at[0,4] = [[3.0]]
df.at[0,5] = [[-1]]
df.at[0,6] = [[]]
display(df)

Which results in:

Result_of_the_code

(您还可以通过运行以下代码片段找到类似的结果。)

<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>0</th>
      <th>1</th>
      <th>2</th>
      <th>3</th>
      <th>4</th>
      <th>5</th>
      <th>6</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>[[1]]</td>
      <td>[[1.0, 2.0], [2.0, 4.0], [8.0, 3.0], [9.0, 7.0]]</td>
      <td>[[0.487], [1.5326], [1.544], [1.846]]</td>
      <td>[[3.0]]</td>
      <td>[[3.0]]</td>
      <td>[[-1]]</td>
      <td>[[]]</td>
    </tr>
  </tbody>
</table>

正如你所看到的,每个单元格都是显示为列表, i.e:

Displayed_matrix_as_list_form

(您还可以通过运行以下代码片段找到类似的结果。)

<body>
    [[1.0, 2.0], [2.0, 4.0], [8.0, 3.0], [9.0, 7.0]]
</body>

我在尝试着将其更改为类似的东西:

Intended_result

(您还可以通过运行以下代码片段找到类似的结果。)

.matrix {
        position: relative;
    }
    .matrix:before, .matrix:after {
        content: "";
        position: absolute;
        top: 0;
        border: 1px solid #000;
        width: 6px;
        height: 100%;
    }
    .matrix:before {
        left: -10px;
        border-right: -0;
    }
    .matrix:after {
        right: -10px;
        border-left: 0;
    }
<div align=center>
  <table class="matrix">
    <tr>
      <td>1</td>
      <td>2</td>
    </tr>
    <tr>
      <td>2</td>
      <td>4</td>
    </tr>
    <tr>
      <td>8</td>
      <td>3</td>
    </tr>
    <tr>
      <td>9</td>
      <td>7</td>
    </tr>
  </table>
</div>

谢谢。


Pandas 有一个默认的输出打印机,无法实现您所需要的。但是,您可以使用pandas.Styler创建 HTML,然后将 HTML 插入到 DataFrame 中,然后使用您提供的必要 CSS 样式渲染该 HTML:

data = [
    [[1]],
    [[1.0,2.0],[2.0,4.0],[8.0,3.0],[9.0,7.0]],
    [[0.487],[1.532],[1.544],[1.846]],
    [[3.0]],
    [[3.0]],
    [[-1]],
]
    
df = pd.DataFrame([
    [(pd.DataFrame(x)
        .style
        .hide_index()
        .hide_columns()
        .set_table_attributes('class="matrix"')
        .to_html()
     ) for x in data]
], dtype="object")
df.style.set_table_styles([
    {"selector": ".matrix", "props": "position: relative;"},
    {"selector": ".matrix:before, .matrix:after", 
     "props":  'content: ""; position: absolute; top: 0; border: 1px solid #000; width: 6px; height: 100%;'
    },
    {"selector": ".matrix:before", "props": "left: -0px; border-right: -0;"},
    {"selector": ".matrix:after", "props": "right: -0px; border-left: 0;"}
])

enter image description here

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使 Pandas DataFrame (Python) 以二维 (2-D) 矩阵格式显示每个单元格 的相关文章

随机推荐

  • 如何以编程方式关闭应用程序?

    我正在寻找完全关闭我的应用程序的按钮的代码 我尝试使用谷歌的一些东西 但我的应用程序仍在后台运行 我需要完全关闭它 有代码可以做到这一点吗 为什么你需要真正关闭你的应用程序 假设它只是一个普通的应用程序 没有运行任何后台服务或持有唤醒锁 你
  • 在 Mac OS X 10.6 上卸载 Ruby on Rails

    我正在尝试让 RoR 启动并运行 mysql 数据库 但这对我来说似乎是不可能的 在包含 mysql gem 时出现错误 所以我尝试通过控制台做很多事情但没有结果 我不记得我做了什么 所以 我想删除所有内容并从cero重新开始 如何从 Ma
  • 如何使用kivy处理android运行时权限

    我发现 kivy 是构建跨平台应用程序的非常好的框架 并且我对 kivy 非常感兴趣 只是为了做 android 应用程序 因为我认为在 kivy 中很容易和舒适 在尝试了几个例子之后 我有兴趣知道应该如何处理 kivy 应用程序的 and
  • 从 Oracle 数据库转换字符串与 AM/PM 日期时间

    我的时间戳格式为03 AUG 12 08 15 00 000000000 PM 05 00我无法获得String形式上的表示yyyy MM dd HH mm ss 这是我的代码 public static void convert Stri
  • requirejs blueimp fileuploader 仅加载 min.js 文件,不加载其他文件

    所以我是 requirejs 和backbone 的菜鸟 但我试图在本地计算机上加载blueimp 文件上传器的所有依赖项 而不加载任何外部脚本 这是我的 config js 文件 Set the require js configurat
  • 如何从linux程序将输入逐行输入到python?

    我想通过管道输出ps ef逐行转换为 python 我正在使用的脚本是这个 first py usr bin python import sys for line in sys argv print line 不幸的是 行 被分成由空格分隔
  • 没有动作的意图过滤器

    Android 的文档说 http developer android com reference android content IntentFilter html 如果任何给定值与意图操作匹配 或者过滤器中未指定任何操作 则操作匹配 我
  • QML:GridView 在 C++ 中更改模型后不更新

    我的起点是以下 QML 源 其 中 GridView 显示 ListModel 以及项目交换的漂亮动画 import QtQuick 1 1 GridView id mainGrid width 825 height 400 cellWid
  • 使用 xpath 从背景图像样式属性中提取值

    ii 具有以下结构 div class xGh style background image none div 我需要那个输出 name file jpg 我尝试用它answer 但不适合我 img xpath gt query subst
  • 比较 shell 脚本中的两个版本号

    我有一个文件file1如下所示 包含当前版本号和预期版本号 CurrV 1 5 2 ExpecV 1 8 1 我想编写一个 bash 脚本来比较这两个值 如果ExpecV gt CurrV那我应该echo SUCCESS 否则我应该echo
  • Numpy 数组索引和/或添加似乎很慢

    我正在对 numpy 数组进行基准测试 因为当我尝试在脚本中用 numpy 数组替换 python 数组时 结果比预期的要慢 我知道我错过了一些东西 我希望有人能澄清我的无知 我创建了两个函数并为它们计时 NUM ITERATIONS 10
  • 仅在 tumblr 博客主页上显示 div?

    我对 CSS 和 HTML 的理解相当新手 我正在尝试做一些我认为应该相对简单的事情 在我正在创建的自定义 tumblr 主题中 但我找不到简单的答案 我有一种感觉 可能有一种超级简单的方法可以在 JavaScript 中完成我想要的事情
  • 将 .cpp 文件编译为程序内部的 EXE(EXE 文件)[关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我想做一个程序 EXE文件 它将采用用户定义的设置并在前面提到的程序 EXE 内为用户创
  • 具有任意数量集合的 Python itertools.product

    我希望执行以下代码 temp temp append 1 2 temp append 3 4 temp append 5 6 print list itertools product temp 0 temp 1 temp 2 但是 我想以任
  • Python 替换 PHP 的标头

    如何在 python 中发送原始 http 标头 就像 PHP 中的 header 一样 在 Django 中 你会像 def someview request etc out HttpResponse outputstring mimet
  • 在 C++ 服务和用户模式应用程序崩溃后收集崩溃 .dmp 和 .hdmp 文件

    我正在使用 WinAPI 在 C MFC 中进行编码 我的软件由本地服务和用户模式应用程序组成 该应用程序为登录的 Windows 用户提供用户界面 我正在寻找一种方法来收集 dmp 和 hdmp 文件 以防这些模块中的任何一个发生崩溃 我
  • Android:下载文件并保存在 SD 卡上

    正在尝试创建一个应用程序来下载 SD 卡上的文件 这是我的代码 public class MainActivity extends Activity Override protected void onCreate Bundle saved
  • 如何使用 frexp 实现双变量的模运算符?

    我正在关注Kernighan Pike UNIX 编程环境 书中的一个练习 练习 8 2 第 241 页 要求实现模运算符 double变量在C So 4 6 2 1 0 4 4 0 3 0 1 0 因此基本上是在实施dmod using
  • 为什么具有elasticsearch状态的docker镜像总是重新启动?

    ubuntu 16 04 ram 1gb 在 aws 实例上 我必须运行旧的elasticsearch实例 所以我想使用elasticsearch 5 3 3版本的docker镜像 通过查看 stackoverflow 上多个具有相同标题的
  • 如何使 Pandas DataFrame (Python) 以二维 (2-D) 矩阵格式显示每个单元格

    我正在尝试使用 Python 中导入的 Matlab 结构创建二维 2 D 数据结构 当我使用 pandas DataFrame 时 每个单元格都包含一个矩阵 但是它们以列表格式显示 我正在尝试将其更改为矩阵格式 使用以下代码 Python