python123二维列表的展开_Python实现把多维数组展开成DataFrame

如下所示:

import numpy as np

import pandas as pd

########### 准备数据

a1 = np.arange(1,101)

a3 = a1.reshape((2,5,10))

”’

array([[[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10],

[ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20],

[ 21, 22, 23, 24, 25, 26, 27, 28, 29, 30],

[ 31, 32, 33, 34, 35, 36, 37, 38, 39, 40],

[ 41, 42, 43, 44, 45, 46, 47, 48, 49, 50]],

[[ 51, 52, 53, 54, 55, 56, 57, 58, 59, 60],

[ 61, 62, 63, 64, 65, 66, 67, 68, 69, 70],

[ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80],

[ 81, 82, 83, 84, 85, 86, 87, 88, 89, 90],

[ 91, 92, 93, 94, 95, 96, 97, 98, 99, 100]]])

”’

########### 准备标签

第 1 维的标签

index1 = pd.Series(np.arange(1,11))

index1 = index1.astype(str)

index1 = ‘A’+index1

index1

”’

0 A1

1 A2

2 A3

3 A4

4 A5

5 A6

6 A7

7 A8

8 A9

9 A10

”’

第 2 维的标签

index2 = pd.Series(np.arange(1,6))

index2 = index2.astype(str)

index2 = ‘B’+index2

index2

”’

0 B1

1 B2

2 B3

3 B4

4 B5

”’

第 3 维的标签

index3 = pd.Series(np.arange(1,3))

index3 = index3.astype(str)

index3 = ‘C’+index3

index3

”’

0 C1

1 C2

”’

########### 展开数据

把三维数组展开

value = a3.flatten()

value = pd.Series(value)

value.name = ‘value’

value

”’

0 1

1 2

2 3

97 98

98 99

99 100

Name: value, Length: 100, dtype: int64

”’

########### 展开标签

import itertools

index的笛卡尔乘积。注意:高维在前,低维在后

prod = itertools.product(index3, index2, index1 )

转换为DataFrame

prod = pd.DataFrame([x for x in prod])

prod.columns = [‘C’, ‘B’, ‘A’]

prod.T

”’

0 1 2 3 4 5 6 7 8 9 … 90 91 92 93 94 95 96 \

C C1 C1 C1 C1 C1 C1 C1 C1 C1 C1 … C2 C2 C2 C2 C2 C2 C2

B B1 B1 B1 B1 B1 B1 B1 B1 B1 B1 … B5 B5 B5 B5 B5 B5 B5

A A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 … A1 A2 A3 A4 A5 A6 A7

97 98 99

C C2 C2 C2

B B5 B5 B5

A A8 A9 A10

[3 rows x 100 columns]

”’

########### 最终数据

合并成一个DataFrame

pd.concat([prod, value], axis=1)

”’

C B A value

0 C1 B1 A1 1

1 C1 B1 A2 2

2 C1 B1 A3 3

3 C1 B1 A4 4

4 C1 B1 A5 5

5 C1 B1 A6 6

6 C1 B1 A7 7

7 C1 B1 A8 8

8 C1 B1 A9 9

9 C1 B1 A10 10

10 C1 B2 A1 11

11 C1 B2 A2 12

12 C1 B2 A3 13

13 C1 B2 A4 14

14 C1 B2 A5 15

15 C1 B2 A6 16

16 C1 B2 A7 17

17 C1 B2 A8 18

18 C1 B2 A9 19

19 C1 B2 A10 20

20 C1 B3 A1 21

21 C1 B3 A2 22

22 C1 B3 A3 23

23 C1 B3 A4 24

24 C1 B3 A5 25

25 C1 B3 A6 26

26 C1 B3 A7 27

27 C1 B3 A8 28

28 C1 B3 A9 29

29 C1 B3 A10 30

.. .. .. … …

70 C2 B3 A1 71

71 C2 B3 A2 72

72 C2 B3 A3 73

73 C2 B3 A4 74

74 C2 B3 A5 75

75 C2 B3 A6 76

76 C2 B3 A7 77

77 C2 B3 A8 78

78 C2 B3 A9 79

79 C2 B3 A10 80

80 C2 B4 A1 81

81 C2 B4 A2 82

82 C2 B4 A3 83

83 C2 B4 A4 84

84 C2 B4 A5 85

85 C2 B4 A6 86

86 C2 B4 A7 87

87 C2 B4 A8 88

88 C2 B4 A9 89

89 C2 B4 A10 90

90 C2 B5 A1 91

91 C2 B5 A2 92

92 C2 B5 A3 93

93 C2 B5 A4 94

94 C2 B5 A5 95

95 C2 B5 A6 96

96 C2 B5 A7 97

97 C2 B5 A8 98

98 C2 B5 A9 99

99 C2 B5 A10 100

[100 rows x 4 columns]

”’

以上这篇Python实现把多维数组展开成DataFrame就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持IIS7站长之家。

Original: https://blog.csdn.net/weixin_42515339/article/details/114923862
Author: in whitney
Title: python123二维列表的展开_Python实现把多维数组展开成DataFrame

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/743741/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • YOLO V6论文精读

    1. Introduction 在论文中,作者通过实证观察了几个促使我们重新提供YOLO框架的重要因素: (1)从RepVGG [3]中重新参数化是一种优越的技术,在检测中尚未得到…

    Python 2023年9月30日
    025
  • Selenium

    Selenium 简介 Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,类型像我们玩游戏用的按键精灵,可以按指定的命令自动操作,不同是Selenium…

    Python 2023年6月10日
    094
  • opencv数字识别_OCR-A银行卡数字识别:python-opencv实现

    1 说明 ===== 1.1 OCR(光学字符识别): 该字体有几种用途,其中自动化系统需要定义标准的字符形状以正确扫描不使用条形码的数字和文本。 OCR 应用的一些实例包括银行支…

    Python 2023年9月22日
    058
  • 如何在Seaborn柱形图顶端添加数字——以奥运数据分析为例

    如何在Seaborn柱形图顶端添加数字——以奥运数据分析为例 1.问题的提出 之前暑期在家,闲着没事干的时候想写点基础的代码巩固下自己python知识,于是就上Kaggle下了一套…

    Python 2023年8月20日
    061
  • 葫芦侠:一键签到云函数 超详细教程

    前言 此代码搬运吾爱破解@fuxi ,而我做这个博客就是记录一些可以使用函数签到的教程,不喜勿喷 教程 1、腾讯云函数地址:https://cloud.tencent.com/lo…

    Python 2023年6月10日
    098
  • Numpy:数组(Ndarray)操作之数组连接

    Numpy中数组连接的方法很多,但是各有特点,本文将对各种方法做详细的解释和示例演示。 方法列表 方法说明numpy.concatenate()沿现有轴连接一系列数组。numpy….

    Python 2023年8月27日
    034
  • python飞行棋项目

    项目介绍 这是一个使用python写成的飞行棋项目,需要用到pygame库,这里就不写安装教程了,请自行安装。 实现效果 启动游戏后,进入开始界面。 按下”start&…

    Python 2023年9月20日
    048
  • Python学习笔记: getpass module: 安全输入密码

    使用input()函数接收用户输入的时候会将用户输入回显,对于密码肯定是不适用的。标准库里面有getpass module提供了安全输入不回显 getpass.getpass() …

    Python 2023年6月10日
    047
  • matplotlib与tkinter的简单使用,以及内存溢出问题。

    matplotlib的简单使用 创建画布 准备x,y轴数据 绘制图像 显示图像 matplotlib.pyplot的简单画图 使用matplotlib中的pyplot包做画图示例。…

    Python 2023年8月31日
    079
  • Pytest入门【2】

    为什么需要这些功能? 比如:web自动化执行用例之前,请问需要打开浏览器吗?用例执行后需要关闭浏览器? class TestMashang: 这个在所有的用例之前只执行一次 def…

    Python 2023年9月13日
    024
  • NLP模型学习方式

    如何学习项目: NLP涉及30多种任务 项目中涉及各种文件:因此 1.看README.md(项目自述,说明该项目) (1)项目是干嘛的 (2)大致用什么框架 (3)所需的环境 (4…

    Python 2023年9月16日
    042
  • [De1CTF 2019]SSRF Me

    考点:代码审计,关于flask框架的应用,python读写文件 目录 解题过程 代码审计: 1. /De1ta和/geneSign 2. Task类 3. python文件操控 4…

    Python 2023年8月14日
    062
  • Python可视化——绘制折线图

    绘制折线图 plot() (1)准备工作绘制可视化图形,将会使用到Matplotlib库中的pyplot包。Matplotlib是Python的绘图库,其中的pyplot包封装了很…

    Python 2023年9月6日
    034
  • AI医疗高精尖!基于AI的新药研发!⛵

    💡 作者:韩信子@ShowMeAI📘 机器学习实战系列:https://www.showmeai.tech/tutorials/41📘 深度学习实战系列:https://www.s…

    Python 2023年10月24日
    060
  • DETR源码笔记(一)

    源码获取:https://gitee.com/fgy120/DETR 首先对DETR做个简单介绍 上图即为DETR的流程pipeline,相比以前的RCNN系列、YOLO系列等,最…

    Python 2023年9月28日
    053
  • python设置曲面图颜色范围_三维曲面p的matplotlib中的自定义颜色映射

    我有一个指定颜色图的曲面图。以下是我的理解:import numpy as np import matplotlib.pyplot as plt import math from …

    Python 2023年9月5日
    051
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球