python数据分析2:DataFrame对象

DataFrame对象:二维表数据结构,由行列数据组成的表格

常用index表示行,columns表示列

import pandas as pd

from pandas.core import series

pd.set_option('display.unicode.east_asian_width',True)

data = [[110, 105, 99], [105, 88, 115], [109, 120, 130]]

index = [0, 1, 2]

columns = ['语文', '数学', '英语']

df = pd.DataFrame(data=data, index=index, columns=columns)

# print(df)

'''

  语文  数学  英语

0  110  105    99

1  105    88  115

2  109  120  130

'''

# print(df.columns)  # Index(['语文', '数学', '英语'], dtype='object')

# print(df.index)  # Int64Index([0, 1, 2], dtype='int64')

# 遍历DataFrame数据的每一列

for col in df.columns:

    series = df[col]

    print(series)

'''

0    110

1    105

2    109

Name: 语文, dtype: int64

0    105

1    88

2    120

Name: 数学, dtype: int64

0    99

1    115

2    130

Name: 英语, dtype: int64

'''

1.创建一个DataFrame对象

pandas.DataFrame(data,index,columns,dtype,copy)

# data表示数据,可以是ndarray数组,series对象、列表、字典等

# index表示行标签(索引)

# columns表示列标签(索引)

# dtype每一列数据的数据类型

# copy用于复制数据

# 返回值DataFrame

通过二维数组创建成绩表

import pandas as pd

pd.set_option('display.unicode.east_asian_width',True)

data = [[110, 105, 99], [105, 88, 115], [109, 120, 130]]

columns = ['语文', '数学', '英语']

df = pd.DataFrame(data=data, columns=columns)

print(df)

'''

  语文  数学  英语

0  110  105    99

1  105    88  115

2  109  120  130

'''

2.通过字典创建DataFrame对象

value值只能是一维数组或单个的简单数据类型

# 数组,则要求所有的数组长度一致

# 单个数据,每行都需要添加相同数据

import pandas as pd

pd.set_option('display.unicode.east_asian_width', True)

df = pd.DataFrame({

    '语文':[110, 105, 99],

    '数学':[105, 88, 115],

    '英语':[109, 120, 130],

    '班级':'高一7班'

},index=[0,1,2])

print(df)

'''

  语文  数学  英语    班级

0  110  105  109  高一7班

1  105    88  120  高一7班

2    99  115  130  高一7班

'''

'''

【DataFrame属性】

values 查看所有元素的值  df.values

dtypes 查看所有元素的类型  df.dtypes

index 查看所有行名、重命名行名  df.index    df.index=[1,2,3]

columns 查看所有列名、重命名列名  df.columns  df.columns=['语','数']

T 行列数据转换  df.T

head 查看前n条数据,默认5条                df.head()  df.head(10)

tail 查看后n条数据,默认5条                df.tail()  df.tail(10)

shape 查看行数和列数,[0]表示行,[1]表示列    df.shape[0]  df.shape[1]

info 查看索引,数据类型和内存信息    df.info

【DataFrame函数】

describe 查看每列的统计汇总信息,DataFrame类型  df.describe()

count    返回每一列中的非空值的个数              df.count()

sum      返回每一列和和,无法计算返回空值      df.sum()

max      返回每一列的最大值                df.max()

min      返回每一列的最小值                df.min()

argmax  返回最大值所在的自动索引位置        df.argmax()

argmin  返回最小值所在的自动索引位置        df.argmin()

idxmax  返回最大值所在的自定义索引位置      df.idxmax()

idxmin  返回最小值所在的自定义索引位置      df.idxmin()

mean    返回每一列的平均值                df.mean()

median  返回每一列的中位数                df.median()

var      返回每一列的方差                  df.var()

std      返回每一列的标准差  df.std()

isnull  检查df中的空值,空值为True,否则为False,返回布尔型数组  df.isnull()

notnull  检查df中的空值,非空值为True,否则为False,返回布尔型数组  df.notnull()

中位数又称中值,是指按顺序排列的一组数据中居于中间位置的数

方差用于度量单个随机变量的离散程序(不连续程度)

标准差是方差的算术平方根,反映数据集的离散程度

'''

3.导入.xls或.xlsx文件

# pandas.read_excel(io,sheetname=0,header=0,names=None,index_col=None,usecols=None,squeeze=False,dtype=None,engine=None,converters=None,true_values=None,false_values=None,skiprows=None,nrow=None,na_values=None,keep_defalut_na=True,verbose=False,parse_dates=False,date_parser=None,thousands=None,comment=None,skipfooter=0,conver_float=True,mangle_dupe_cols=True,**kwds)

'''

io 字符串,xls或xlsx文件路径或类文件对象

sheet_name:None、字符串、整数、字符串列表或整数列表,默认值为0

    字符串用于工作表名称;整数为索引,表示工作表位置

    字符串列表或整数列表用于请求多个工作表,为None时则获取所有的工作表

    sheet_name = 0 第一个Sheet页中的数据作为DataFrame对象

    sheet_name = 1 第二个Sheet页中的数据作为DataFrame对象

    sheet_name = 'Sheet1' 名为Sheet1的Sheet页中的数据作为DataFrame对象

    sheet_name = [0,1,'Sheet3'] 第一个,第二个和名为Sheet3的Sheet页中的数据作为DataFrame对象

header:指定作为列名的行,默认值为0,即取第一行的值为列名。或数据不包含列名,则为header=None

names:默认值为None,要使用的列名列表

index_col:指定列为索引列,默认值为None,索引0是DataFrame对象的行标签

usecols:int、list或字符串,默认值为None

    如为None,则解析所有列

    如为int,则解析最后一列

    如为list列表,则解析列号和列表的列

    如为字符串,则表示以逗号分隔的Excel列字母和列范围列表

squeeze:布尔值,默认为False,如果解析的数据只包含一列,则返回一个Series

dtype:列的数据类型名称为字典,默认值为None

skiprows:省略指定行数的数据,从第一行开始

skipfooter:省略指定行数的数据,从尾部数的行开始

4.导入指定Sheet页的数据

import pandas as pd

pd.set_option('display.unicode.east_asian_width',True)

df = pd.read_excel('data.xlsx',sheet_name='Sheet1')

print(df.head())

# sheet_name=0表示第一个sheet页的数据,以此类推,如果不指定,则导入第一页

5.指定行索引导入Excel数据

import pandas as pd

pd.set_option('display.unicode.east_asian_width',True)

df1 = pd.read_excel('data.xlsx',header=None)

print(df1.head())

'''

Empty DataFrame

Columns: []

Index: [1, 3, 5]

'''

# 导入第一列数据

import pandas as pd

pd.set_option('display.unicode.east_asian_width',True)

df1 = pd.read_excel('data.xlsx',usecols=[0])

print(df1.head())

# 导入第一列和第四列

df1 = pd.read_excel('data.xlsx',usecols=[0,3])

'''

Empty DataFrame

Columns: []

Index: [1, 3, 5]

'''

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,383评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,522评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,852评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,621评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,741评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,929评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,076评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,803评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,265评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,582评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,716评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,395评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,039评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,027评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,488评论 2 361
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,612评论 2 350

推荐阅读更多精彩内容