python进行数据处理——pandas的数据基本操作

Python 数据分析包:pandas 基础

pandas 是基于 Numpy 构建的含有更高级数据结构和工具的数据分析包 ,pandas主要是围绕series和DataFrame进行操作。

series

series可以看做为一个字典,其中包含index和data ,index可以为我们自己进行定义的。series主要定义一维数组。首先要导入pandas模块,基本定义方式如下:

import pandas as pd
from pandas import DataFrame,Series #导入模块
serises = Series([1,2,3],index = ['a','b','c'])
print(serises)
a    1
b    2
c    3
dtype: int64

如果data类型是多种的话dtype为:object

serises = Series([1,'a',5],index = ['a','d','e'])
print(serises)
a    1
d    a
e    5
dtype: object

在操作中最好保持一种数据类型。

series属性

series有两个属性一个为value另一个为index,value和index是相互对应的,在定义series是一般会定义index,默认为0,1,2

serises = Series([1,2,3,4,5],index = ['a','b','c','d','e'])
serises.values
array([1, 2, 3, 4, 5], dtype=int64)
serises.index
Index(['a', 'b', 'c', 'd', 'e'], dtype='object')

通过ndarray创建一个系列

#通过ndarray创建一个系列
data = np.array(['a','b','c','d',5,6,np.NaN,10.0])
ser02 = pd.Series(data)
print(data)
print(ser02)
['a' 'b' 'c' 'd' '5' '6' 'nan' '10.0']
0       a
1       b
2       c
3       d
4       5
5       6
6     nan
7    10.0
dtype: object

Series 对象的元素会严格依照给出的 index 构建,这意味着:如果 data 参数是有键值对的,那么只有 index 中含有的键会被使用;以及如果 data 中缺少响应的键,即使给出 NaN 值,这个键也会被添加。

添加index所以以及name

serises = Series([1,2],index = ['a','b'])
serises.name = '6'
serises.index.name = 'f'
f
a    1
b    2
Name: 6, dtype: int64

DataFrame

DataFrame 是一个表格型的数据结构,它含有一组有序的列(类似于index),每列可以是不同的值类型(不像 ndarray 只能有一个 dtype)。基本上可以把 DataFrame 看成是共享同一个 index 的 Series 的集合

首先创建一个空的DataFrame

import pandas as pd
from pandas import DataFrame,Series
import numpy as np
df = pd.DataFrame()
print(df)
Empty DataFrame
Columns: []
Index: []

可以通过一个二维数组进行创建

arr = np.array([['好了','早上'],
                ['号楼','你好'],
                ['好的','网上']])
df = pd.DataFrame(arr,index = ['c','a','b'],columns = ['sd','78'])
print(df)
   sd  78
c  好了  早上
a  号楼  你好
b  好的  网上

通过字典进行创建

dict1 = {'age':[12,23,34,45],
         'name':['小宁','小红','小兰','小花'],
         'sex':['男','女','男','女']}
df1 = pd.DataFrame(dict1,index = ['a','e','w','r'])
print(df1)
   age name sex
a   12   小宁   男
e   23   小红   女
w   34   小兰   男
r   45   小花   女

选择列以及增加列:

选择列:

df1['age']
a    12
e    23
w    34
r    45
Name: age, dtype: int64

增加列:

df1['address'] = ['上海','北京','杭州','天津']
print(df1)
   age name sex address
a   12   小宁   男      上海
e   23   小红   女      北京
w   34   小兰   男      杭州
r   45   小花   女      天津

列删除:

df1.pop('address')
a    上海
e    北京
w    杭州
r    天津
Name: address, dtype: object
print(df1)
   age name sex
a   12   小宁   男
e   23   小红   女
w   34   小兰   男
r   45   小花   女

行选择、行增加、行删除:

df1.ix['a']
age     12
name    小宁
sex      男
Name: a, dtype: object
df1.ix['d'] = ['24','小韩','男']
print(df1)
  age name sex
a  12   小宁   男
e  23   小红   女
w  34   小兰   男
r  45   小花   女
d  24   小韩   男
df1.drop('d')
	age	name	sex
a	12	小宁	男
e	23	小红	女
w	34	小兰	男
r	45	小花	女






评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值