二、Pandas基础:DataFrame

h2 { font-size: 24px; height: 35px; line-height: 35px !important; width: 95%; background-color: #169FE6; padding-left: 10px; color: white }
table { border: 1px solid #d3d3d3; background: #fefefe; width: 90% }
th,td { padding: 0.5% 1% 0.5% }
th { background: #e8eaeb }
td { border-top: 1px solid #e0e0e0; border-right: 1px solid #e0e0e0 }
tr:nth-child(2n+1) { background: #f6f6f6 }
td.first,th.first { text-align: left }
td.last { border-right: none }
td { background: -webkit-gradient(linear, 0% 0%, 0% 25%, from(#f9f9f9), to(#fefefe)) }
tr:nth-child(2n+1) td { background: -webkit-gradient(linear, 0% 0%, 0% 25%, from(#f1f1f1), to(#f6f6f6)) }
th { background: -webkit-gradient(linear, 0% 0%, 0% 20%, from(#ededed), to(#e8eaeb)) }
tr:first-child th.first { }
tr:first-child th.last { }
tr:last-child td.first { }
tr:last-child td.last { }
.syntaxhighlighter { width: 95% !important }

一、DataFrame简介

  • 一个表型格数的、据结构,包含有一组有序的列,每列可以是不同的值类型(数值、字符串布尔型等),DataFrame即有行索引也有列索引,可以被看做是由Series组成的字典。

二、DataFrame创建

  • DataFrame可以使用数组,列表和字典等方式进行创建
  • 当DataFrame数组和列表创建时,可指定参数index(行索引)和columns(列索引),如果不指定,默认用0的列表为序列号
  • 创建后的DataFrame,亦可修改行列参数
import pandas as pd
a = pd.DataFrame(
    [
        [‘小红‘, ‘小花‘, ‘小兰‘],
        [85, 93, 99]
    ])
b = pd.DataFrame(
    [
        [‘小红‘, 85],
        [‘小花‘, 93],
        [‘小兰‘, 99]
    ], columns=[‘姓名‘, ‘成绩‘]
)
data = {
    ‘apart‘: [‘101‘, ‘102‘, ‘103‘, ‘104‘],
    ‘profits‘: [681.5, 125, 15.5, 160],
    ‘year‘: [2007, 2010, 2012, 2008],
    ‘months‘: 8
}
c = pd.DataFrame(data, index=[‘one‘, ‘two‘, ‘three‘, ‘four‘])
print("普通列表创建:\n", a)
print("带列名的创建:\n", b)
print("字典方式创建:\n", c)
>>>
普通列表创建:
     0   1   2
0  小红  小花  小兰
1  85  93  99
带列名的创建:
    姓名  成绩
0  小红  85
1  小花  93
2  小兰  99
字典方式创建:
       apart  months  profits  year
one     101       8    681.5  2007
two     102       8    125.0  2010
three   103       8     15.5  2012
four    104       8    160.0  2008

三、DataFrame查询

DataFrame可以直接通过列索引名,查看或修改整列值

如果想通过行索引名查询的话,需要借助ix(‘行索引名‘)

import pandas as pd
data = {
    ‘apart‘: [‘101‘, ‘102‘, ‘103‘, ‘104‘],
    ‘profits‘: [681.5, 125, 15.5, 160],
    ‘year‘: [2007, 2010, 2012, 2008],
    ‘months‘: 8
}
c = pd.DataFrame(data, index=[‘one‘, ‘two‘, ‘three‘, ‘four‘])
print("列索引:\n", c[‘year‘])
print("行索引:\n", c.ix[‘three‘])
>>>
列索引:
one      2007
two      2010
three    2012
four     2008
Name: year, dtype: int64
行索引:
apart       103
months        8
profits    15.5
year       2012
Name: three, dtype: object

四、数据过滤

  • dropna:丢弃(删除)有NaN的行, 可以通过阈值(how参数)的调节对缺失值的容忍度
  • fillna:用指定值或者插值的方式填充缺失数据,比如: ffill或者bfill
  • isnull:返回一个含有布尔值的对象,这些布尔值表示那些值是缺失值NA
  • notnull:返回布尔值对象,非空位为True
############这里演示一个特殊的填充方式############
import pandas as pd
import numpy as np
a = pd.DataFrame(np.random.rand(7, 3))
a.ix[:4, 1] = np.NaN
a.ix[:2, 2] = np.NaN
a=a.fillna({1: 0.5, 2: -1, 3: 2})#按照列索引进行填充
print(a)
>>>
          0         1         2
0  0.467758  0.500000 -1.000000
1  0.436149  0.500000 -1.000000
2  0.917665  0.500000 -1.000000
3  0.473428  0.500000  0.113061
4  0.703225  0.500000  0.090117
5  0.926495  0.962959  0.005762
6  0.414894  0.753270  0.243547

进程已结束,退出代码0

五、DataFrame运算

DataFrame也保留了大量Numpy的运算机制,它们在DataFrame中均可以使用。

DataFrame中默认是按照列索引进行计算的,如果要按照行索引计算,需要在方法后面设置维度参数axis=1

import pandas as pd
a = pd.DataFrame(
    [
        [98.5, 89.5, 88.5],
        [98.5, 85.5, 80.0],
        [70.0, 85.0, 60.0],
        [80.0, 85.0, 82.0]
    ], columns=[‘语文‘, ‘数学‘, ‘英语‘]
)
print("原数组:\n", a)
print("统计结果:\n", a.describe())
>>>
统计结果:
               语文         数学         英语
count   4.000000   4.000000   4.000000
mean   86.750000  86.250000  77.625000
std    14.168627   2.179449  12.297527
min    70.000000  85.000000  60.000000
25%    77.500000  85.000000  75.000000
50%    89.250000  85.250000  81.000000
75%    98.500000  86.500000  83.625000
max    98.500000  89.500000  88.500000

原文地址:https://www.cnblogs.com/hezhefly/p/8284260.html

时间: 2024-10-04 05:34:57

二、Pandas基础:DataFrame的相关文章

Pandas基础学习与Spark Python初探

摘要:pandas是一个强大的Python数据分析工具包,pandas的两个主要数据结构Series(一维)和DataFrame(二维)处理了金融,统计,社会中的绝大多数典型用例科学,以及许多工程领域.在Spark中,python程序可以方便修改,省去java和scala等的打包环节,如果需要导出文件,可以将数据转为pandas再保存到csv,excel等. 1.Pandas是什么? pandas是一个强大的Python数据分析工具包,是一个提供快速,灵活和表达性数据结构的python包,旨在使

pandas基础命令速查表

pandas基础命令速查表 数据的导入 数据的导出 创建测试对象 数据的查看与检查 数据的选取 数据的清洗 数据的过滤(filter)排序(sort)和分组(group) 数据的连接(join)与组合(combine) 一.数据的导入 pd.read_csv(filename) # 导入csv格式文件中的数据 pd.read_table(filename) # 导入有分隔符的文本 (如TSV) 中的数据 pd.read_excel(filename) # 导入Excel格式文件中的数据 pd.r

基于 Python 和 Pandas 的数据分析(2) --- Pandas 基础

在这个用 Python 和 Pandas 实现数据分析的教程中, 我们将明确一些 Pandas 基础知识. 加载到 Pandas Dataframe 的数据形式可以很多, 但是通常需要能形成行和列的数据集. 所以可以是如下的 dictionary 的形式: web_stats = {'Day':[1,2,3,4,5,6], 'Visitors':[43,34,65,56,29,76], 'Bounce Rate':[65,67,78,65,45,52]} 我们可以通过如下方式把这个 dictio

【Python】pandas基础

pandas基础 pandas:主要进行数据清理和数据分析 1.pandas数据结构 1.1 Series 1.1.1 Series可以是一种一维数组型对象. 包含一个值序列,并且包含数据标签,称为索引(index). 创建Series 创建Series,不指定索引或指定索引 obj = pd.Series([1, 3, 5, 7]) obj = pd.Series([1, 2, 3, 4], index = ['a', 'b', 'c', 'd']) 数据访问 Series对象有values和

python学习笔记(四):pandas基础

pandas 基础 serise import pandas as pd from pandas import Series, DataFrame obj = Series([4, -7, 5, 3]) obj 0 4 1 -7 2 5 3 3 dtype: int64 obj.values array([ 4, -7, 5, 3], dtype=int64) obj.index RangeIndex(start=0, stop=4, step=1) obj[[1,3]] # 跳着选取数据 1

pandas基础学习一

生成对象 用值列表生成 Series 时,Pandas 默认自动生成整数索引: In [3]: s = pd.Series([1, 3, 5, np.nan, 6, 8]) In [4]: s Out[4]: 0 1.0 1 3.0 2 5.0 3 NaN 4 6.0 5 8.0 dtype: float64 用含日期时间索引与标签的 NumPy 数组生成 DataFrame: In [5]: dates = pd.date_range('20130101', periods=6) In [6]

ansible(二)基础篇

这篇总结一下Inventory,变量,目标匹配,及/usr/bin/ansible 命令行常用的模块 上一篇也说过Inventory的默认路径是在/etc/ansible/hosts,当然这个东西可以说是静态的,为啥是静态呢,你要手工的把你的要管理的主机写进去. 当然还有一种动态的Inventory,这个其实也简单,就是如果你已经有了一个资源管理系统,里面有你们的所有主机信息.然后咱们写个脚本程序,把你们资源管理系统里面的这些信息给拉过来,以json格式呈现就OK了. 其实ansible还有一种

加壳学习笔记(二)-汇编基础

7.简单的汇编语法:   堆栈平衡  PUSH,POP功能: 把操作数压入或取出堆栈语法: PUSH 操作数 POP 操作数格式: PUSH r PUSH M PUSH data POP r POP mPUSHF,POPF,PUSHA,POPA功能: 堆栈指令群格式: PUSHF POPF PUSHA POPAADD,ADC功能: 加法指令语法: ADD OP1,OP2 ADC OP1,OP2格式: ADD r1,r2 ADD r,m ADD m,r ADD r,data影响标志: C,P,A,

python 数据处理学习pandas之DataFrame

请原谅没有一次写完,本文是自己学习过程中的记录,完善pandas的学习知识,对于现有网上资料的缺少和利用python进行数据分析这本书部分知识的过时,只好以记录的形势来写这篇文章.最如果后续工作定下来有时间一定完善pandas库的学习,请见谅!                     by LQJ 2015-10-25 前言: 首先推荐一个比较好的Python pandas DataFrame学习网址 网址: http://www.cnblogs.com/chaosimple/p/4153083

手游开发攻防——二、基础篇

<手游开发攻防--二.基础篇>已经更新完.主要是通过一个官方的DEMO,来分析Unity3D开发中的一些知识点和应用.注意的事项.大家可以去看看.有什么的可以提出来交流. http://blog.csdn.net/kakashi8841/article/details/39451739