Numpy+pandas(二)

本文是Pandas的快速入门教程,涵盖了Pandas的基本介绍,包括Series和DataFrame的详细说明。重点讲解了如何选择和设置Pandas数据,如通过loc、iloc和ix定位数据,以及使用布尔索引进行筛选。还介绍了Pandas的数据导入导出、合并操作(concat和merge)以及数据可视化的基础知识。
摘要由CSDN通过智能技术生成

                                           Pandas快速入门

一.Pandas基本介绍

1.Numpy和Pandas的异同

     如果用 python 的列表和字典来作比较, 那么可以说 Numpy 是列表形式的,没有数值标签,而 Pandas 就是字典形式。Pandas是基于Numpy构建的,让Numpy为中心的应用变得更加简单。要使用pandas,首先需要了解他主要两个数据结构:Series和DataFrame。

2.Series

     Series的字符串表现形式为:索引在左边,值在右边。由于我们没有为数据指定索引。于是会自动创建一个0到N-1(N为长度)的整数型索引。

import numpy as np

import pandas as pd

s=pd.Series([1,2,3,4])

print(s)

'''

0 1

1 2

2 3

3 4

dtype: int64

'''

3.DataFrame

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

import numpy as np

import pandas as pd

dates=pd.date_range('20180930',periods=6)

df=pd.DataFrame(np.random.randn(6,4),index=dates,columns=['a','b','c','d'])

print(df)

'''

a b c d

2018-09-30 1.993737 1.309212 -0.948103 1.021250

2018-10-01 -1.019824 0.172133 0.173929 0.646952

2018-10-02 0.623758 1.236775 -0.221444 -0.477707

2018-10-03 0.124593 0.843158 1.099162 -0.520331

2018-10-04 0.099328 0.998525 2.023019 2.174637

2018-10-05 0.293913 -2.181669 -0.180980 0.050529

'''

(1) df的两种生成方式

  • 创建一组没有给定行标签和列标签的数据 df1,这样,他就会采取默认的从0开始 index;
  • 也可以用字典的方式创建

(2)获取DataFrame的列名是一个比较简单的操作,又以下几个方法:

  • [column for column in df]
  • df.columns.values 返回 array, 可以通过 tolist(), 或者 list(array) 转换为list,一般 tolist()效率更高。
  • list(df)
  • df.columns 返回Index,可以通过 tolist(), 或者 list(array) 转换为list

(3)DataFrame的简单应用

  • 查看表中数据中的属性:df2.dtypes
  • 查看表的行号:df2.index
  • 查看表的列号:如(2)中介绍
  • 只想查看表中的具体数据:df2.values
  • 得到表中数据的总结:df2.describe()
  • 翻转数据:df2.T
  • 对数据按照columns进行排序输出:df2.sort_index(axis=1,ascending=False),后面代表降序排列
  • 对数据值进行排序输出:df.sort_values(by='E')
import numpy as np

import pandas as pd

#df第一种创建方式

df1=pd.DataFrame(np.arange(12).reshape((3,4)))

print(df1)

'''

0 1 2 3

0 0 1 2 3

1 4 5 6 7

2 8 9 10 11

'''

#df第二种创建方式

df2=pd.DataFrame(

{

'A':1,

'B':pd.Timestamp('20180930'),

'C':pd.Series(1,index=list(range(4)),dtype='float32'),

'D':np.array([3]*4,dtype='int32'),

'E':pd.Categorical(['test','train','test','train']),

'F':'foo'

}

)

print(df2)

'''

A B C D E F

0 1 2018-09-30 1.0 3 test foo

1 1 2018-09-30 1.0 3 train foo

2 1 2018-09-30 1.0 3 test foo

3 1 2018-09-30 1.0 3 train foo

'''

#1.查看表中数据中的属性

print(df2.dtypes)

'''

A int64

B datetime64[ns]

C float32

D int32

E category

F object

dtype: object

'''

#2.查看表的行号

print(df2.index)

'''

Int64Index([0, 1, 2, 3], dtype='int64')

'''

#3.查看表的列号

print(list(df2.columns.values))

'''

['A', 'B', 'C', 'D', 'E', 'F']

'''

#4.只想查看表中的具体数据

print(df2.values)

'''

[[1 Timestamp('2018-09-30 00:00:00') 1.0 3 'test' 'foo']

[1 Timestamp('2018-09-30 00:00:00') 1.0 3 'train' 'foo']

[1 Timestamp('2018-09-30 00:00:00') 1.0 3 'test' 'foo']

[1 Timestamp('2018-09-30 00:00:00') 1.0 3 'train' 'foo']]

'''

#5.得到表中数据的总结

print(df2.describe())

#6.翻转数据

print(df2.T)

#7.对数据按照columns进行排序输出

print(df2.sort_index(axis=1,ascending=False))

'''

F E D C B A

0 foo test 3 1.0 2018-09-30 1

1 foo train 3 1.0 2018-09-30 1

2 foo test 3 1.0 2018-09-30 1

3 foo train 3 1.0 2018-09-30 1

'''

#8.对数据值进行排序输出

print(df2.sort_values(by='E'))

'''

A B C D E F

0 1 2018-09-30 1.0 3 test foo

2 1 2018-09-30 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值