DataFrame概念(可以通俗理解为excel中一片数据)

表格型数据结构,带有标签的二维数组,有行标签(index)和列标签(columns),其值可以是数值、字符串、布尔值等。

1、.index 行标签

2、.columns 列标签

3、.values 值

.4、dtypes     return the dtypes in the DataFrame.

# -*- coding: utf-8 -*-

import pandas as pd

d = {'col1': [1, 2], 'col2': [3, 4]}

df = pd.DataFrame(data=d)

print(df)

print(df.index)

print(df.columns)

print(df.values)

print(df.dtypes)

D:python3installpython.exe D:/python/py3script/test.py

col1 col2

0 1 3

1 2 4

RangeIndex(start=0, stop=2, step=1)

Index(['col1', 'col2'], dtype='object')

[[1 3]

[2 4]]

col1 int64

col2 int64

dtype: object

Process finished with exit code 0

一:数组/list组成的字典创建DataFrame

1、由数组/list组成的字典(字典的值长度必须保持一致)来创建DataFrame,columns为字典的key,index默认为数字标签

2、columns参数即为列的顺序,格式为list,如果现有数据没有该列(比如列'www.python66.com')则显示控制NaN,如果指定的列少于现有数据,则只显示指定列那部分的数据

3、index参数指定行标签,格式为list

# -*- coding: utf-8 -*-

import numpy as np

import pandas as pd

# dictionary创建

d = {'col1': [1, 2], 'col2': [3, 4]}

df = pd.DataFrame(data=d)

print(df)

print('----------------')

# 强制更改dtype

df = pd.DataFrame(data=d, dtype=np.int8)

print(df.dtypes)

print('----------------')

# numpy的ndarray创建

df2 = pd.DataFrame(np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]),columns=['a', 'b', 'c'])

print(df2)

print('----------------')

# 更改columns和index

d = {'col1': [1, 2], 'col2': [3, 4]}

df = pd.DataFrame(data=d,columns=['python66','col2'],index=['python66',2])

print(df)

D:python3installpython.exe D:/python/py3script/test.py

col1 col2

0 1 3

1 2 4

----------------

col1 int8

col2 int8

dtype: object

----------------

a b c

0 1 2 3

1 4 5 6

2 7 8 9

----------------

python66 col2

python66 NaN 3

2 NaN 4

Process finished with exit code 0

二:Series组成的字典创建DataFrame

1、由Series组成的字典创建DataFrame,其columns为字典的key,index默认为Series的标签(默认是数字标签)

2、两个Series长度可以不一致(对比第一种方法字典的值长度必须一致),会产生NaN值。

3、Series的index参数中的元素应避免出现相同的。

# -*- coding: utf-8 -*-

import numpy as np

import pandas as pd

# Series字典构造创建

series1 = pd.Series(np.random.rand(3))

df1 = pd.DataFrame({'col1':series1,'col2':series1})

print(df1)

print('---------------------')

series1 = pd.Series(['a','b','c'],index=['python66','py7','py8'])

series2 = pd.Series(['a','b','c','d'],index=['python66','py7','py8','py9'])

df1 = pd.DataFrame({'col1':series1,'col2':series2})

print(df1)

D:python3installpython.exe D:/python/py3script/test.py

col1 col2

0 0.954448 0.954448

1 0.465568 0.465568

2 0.286233 0.286233

---------------------

col1 col2

py7 b b

py8 c c

py9 NaN d

python66 a a

Process finished with exit code 0

三:通过二维数组直接创建

1、通过二维数组创建DataFrame得到形状一样的二位数据,不指定index和columns参数,则默认是数字标签。

2、index和columns和原数组长度保持一致。

# -*- coding: utf-8 -*-

import numpy as np

import pandas as pd

arr = np.random.rand(12).reshape(3,4)

df1 = pd.DataFrame(arr)

print(df1)

print('---------------')

arr = np.random.rand(12).reshape(3,4)

df2 = pd.DataFrame(arr,index=['a','b','c'],columns=['col1','col2','col3','col4'])

print(df2)

D:python3installpython.exe D:/python/py3script/test.py

0 1 2 3

0 0.374332 0.139147 0.413843 0.866404

1 0.223835 0.454294 0.741501 0.583207

2 0.373477 0.602602 0.322788 0.016215

---------------

col1 col2 col3 col4

a 0.409282 0.808191 0.833259 0.972950

b 0.347496 0.673279 0.502993 0.889290

c 0.427744 0.129409 0.894754 0.373354

Process finished with exit code 0

四:由字典组成的列表创建

# -*- coding: utf-8 -*-

import pandas as pd

lis = [{'course','python'},{'domain':'www.python66.com'}]

df = pd.DataFrame(lis)

print(df)

print('----------------')

df = pd.DataFrame(lis,index=['a','b'])

print(df)

D:python3installpython.exe D:/python/py3script/test.py

0 1

0 python course

1 domain None

----------------

0 1

a python course

b domain None

Process finished with exit code 0

五:由字典组成的字典(嵌套字典)创建

1、最外层的key是列标签columns,里面的字典的key为index。

2、可以通过columns参数改变列标签,也可以通过index参数改变行标签,但是原有的index不会变,相当于新增加了一些Index,值为空值。

# -*- coding: utf-8 -*-

import pandas as pd

dic = {'col1':{'index1':'python','index2':'shell'},'col2':{'index1':'python66','index2':'php'}}

df = pd.DataFrame(dic)

print(df)

print('----------------')

df = pd.DataFrame(dic,index=['a','b'])

print(df)

D:python3installpython.exe D:/python/py3script/test.py

col1 col2

index1 python python66

index2 shell php

----------------

col1 col2

a NaN NaN

b NaN NaN

Process finished with exit code 0

python中dtypes_Dataframe创建及index,columns,values,dtypes等属性介绍相关推荐

  1. Python中字典创建、遍历、添加

    Python中字典创建.遍历.添加 字典是Python中唯一的键-值类型,是Python中非常重要的数据结构,因其用哈希的方式存储数据,其复杂度为O(1),速度非常快.下面列出字典的常用的用途. 一. ...

  2. python创建类的实例方法-Python中动态创建类实例的方法

    简介 在Java中我们可以通过反射来根据类名创建类实例,那么在Python我们怎么实现类似功能呢? 其实在Python有一个builtin函数import,我们可以使用这个函数来在运行时动态加载一些模 ...

  3. python中语法错误-python冒号语法错误python中如何创建字典

    python字典定义 字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ...

  4. 成功解决Python中出现的ValueError: not enough values to unpack (expected 2, got 1)的问题

    成功解决Python中出现的ValueError: not enough values to unpack (expected 2, got 1)的问题 目录 解决问题 解决思路 解决方法 解决问题 ...

  5. python中如何创建类的对象_python面向对象中如何建立具体的对象?

    我们现在眼前所能看到的事物,都是具体的对象.很多小伙伴在面向对象中创建对象,其实都停留在对象名称的建立,计算机中并没有具体对象的描述属性.我们想要使用python中的类,建立的对象就需要是具体的.下面 ...

  6. Python | 面试必问,线程与进程的区别,Python中如何创建多线程?

    其实关于元类还有很多种用法,比如说如何在元类当中设置参数啦,以及一些规约的用法等等.只不过这些用法比较小众,使用频率非常低,所以我们 不过多阐述 了,可以在用到的时候再去详细了解.我想只要大家理解了元 ...

  7. python中如何创建一个空列表_Python创建空列表的字典2种方法详解

    如果要在 Python 中创建键值是空列表的字典,有多种方法,但是各种方法之间是否由区别?需要作实验验证,并且分析产生的原因.本文针对两种方法做了实验和分析. 如果要在 Python 中创建一个键值都 ...

  8. python中怎么创建一个词典_如何在Python中创建字典词典

    所以我正在学习一个自然语言处理类,我需要创建一个trigram语言模型来生成随机文本,这些文本在一定程度上基于一些样本数据看起来"逼真". 根本需要创建一个"三元组&qu ...

  9. python try 嵌套_exception:如何在Python中安全地创建嵌套目录?

    检查要写入文件的目录是否存在的最优雅方法是什么,如果不存在,则使用Python创建目录?以下是我的尝试: import os file_path ="/my/directory/filena ...

最新文章

  1. 流程的python-流畅的Python
  2. OpenGL 光照贴图Lighting maps
  3. 您的API是什么情况?
  4. Go语言从入门到精通 - 数据类型转换
  5. java final内存机制_Java中的内存处理机制和final、static、final static总结
  6. matlab中英文对照表,Matlab工具箱中英文对照
  7. idea代码格式化的自定义
  8. python 除法符号_python的除法运算符是什么
  9. 2013年计算机运算速度慢,win7电脑运行速度很慢怎么提速|三个win7提速的技巧
  10. 使用ffmpeg命令把单张或多张图片生成固定时长的视频
  11. (bug更正)利用KVC和associative特性在NSObject中存储键值
  12. 基于android的共享车位app
  13. 配置MyBatis Plus 的乐观锁功能
  14. 小猪的猪栏文章类目导航
  15. CMS简数采集数据发布到迅睿CMS教程
  16. 神州八号明日清晨发射
  17. ESP32 web WiFi 管理器esp32-wifi-manager
  18. openssl之EVP
  19. 高光谱计算成像论文阅读-High-Quality Hyperspectral Reconstruction Using a Spectral Prior
  20. 单个视频二维码生成与列表二维码生成(完整版)

热门文章

  1. 贪心——买卖股票的最佳时机(Leetcode 122)
  2. 数据结构—链表—单链表应用-增序排列节点
  3. 下载丨53页PDF,云和恩墨技术通讯(2021年4月刊)
  4. PostgreSQL中如何实现密码复杂度检查?
  5. 直播丨如何通过APEX实现数据库自动晨检功能
  6. MySQL 5.7 update误操作后数据恢复详解
  7. Oracle SQL性能优化40条,值得收藏
  8. 数据脱敏:数仓安全隐私保护见真招儿
  9. 华为云MVP熊保松谈物联网开发:华为云IoT是首选,小熊派是神器
  10. 【API进阶之路6】一个技术盲点,差点让整个项目翻车