pandas库的基本运用
Pandas 是 Python 中用于数据处理和分析的重要库,它提供了高效的 DataFrame 数据结构和丰富的数据操作功能。以下是 Pandas 的一些基本运用:
一、DataFrame
DataFrame 是一种表格型的数据结构,它包含行和列,类似于我们常见的 Excel 表格。
1.运用
创建数据结构
示例:
import pandas as pd
a = pd.DataFrame({'name':['wzj','lmy','ldy','zhh'],'age':['23','22','22','22'],'income':['7000','7000','7000','7000']},index=['person1','person2','person3','person4'])
print(a)
结果:
name age income
person1 wzj 23 7000
person2 lmy 22 7000
person3 ldy 22 7000
person4 zhh 22 7000
2.属性
示例:
import pandas as pd
a = pd.DataFrame({'name':['wzj','lmy','ldy','zhh'],'age':['23','22','22','22'],'income':['7000','7000','7000','7000']},index=['person1','person2','person3','person4'])
#行索引
a.index
print(a.index)
#列名
a.columns
print(a.columns)
#值
a.values
print(a.values)
结果:
Index(['person1', 'person2', 'person3', 'person4'], dtype='object')
Index(['name', 'age', 'income'], dtype='object')
[['wzj' '23' '7000']['lmy' '22' '7000']['ldy' '22' '7000']['zhh' '22' '7000']]
3.常见操作
排序(升序和降序)
示例:
import pandas as pd
a = {'name':['wzj','lmy','ldy','zhh'],'age':['23','22','21','20'],'income':['7000','7000','7000','7000']}
df = pd.DataFrame(a)
print(df)
'''
根据年龄这一列,进行排序【升序和降序】
'''df = df.sort_values(by=['age'])
print(df)
df = df.sort_values(by=['age'],ascending=False)
print(df)
结果:
name age income
0 wzj 23 7000
1 lmy 22 7000
2 ldy 21 7000
3 zhh 20 7000name age income
3 zhh 20 7000
2 ldy 21 7000
1 lmy 22 7000
0 wzj 23 7000name age income
0 wzj 23 7000
1 lmy 22 7000
2 ldy 21 7000
3 zhh 20 7000
值替换
示例:
import pandas as pd
a = {'name':['wzj','lmy','ldy','zhh'],'age':['23','22','21','20'],'income':['7000','7000','7000','7000'],'gender':['m','m','m','m']}
df = pd.DataFrame(a)
print(df)
'''
值替换
'''
df['gender']=\
df['gender'].replace(['m'],['male'])
print(df)
结果:
name age income gender
0 wzj 23 7000 m
1 lmy 22 7000 m
2 ldy 21 7000 m
3 zhh 20 7000 mname age income gender
0 wzj 23 7000 male
1 lmy 22 7000 male
2 ldy 21 7000 male
3 zhh 20 7000 male
二、series
Series 是一种带索引的一维数组,可以存储多种数据类型。
1.运用
创建数据结构
示例:
import pandas as pd
#生成第一个Series[按照默认的index]
s_1 = pd.Series([1,2,3,4,5])
print(s_1)
#自定义index
s_2 = pd.Series([1,2,3,4,5],index=['a','b','d','e','f'])
print(s_2)
s_3 = pd.Series(['Lily', "Rose", "Jack"])
print(s_3)
结果:
0 1
1 2
2 3
3 4
4 5
dtype: int64
a 1
b 2
d 3
e 4
f 5
dtype: int64
0 Lily
1 Rose
2 Jack
dtype: object
属性:
示例:
import pandas as pd
s_1 = pd.Series([1,2,3,4,5])
s_2 = pd.Series([1,2,3,4,5],index=['a','b','d','e','f'])
s_3 = pd.Series(['Lily', "Rose", "Jack"])
#Series的一些属性
s_1.index
print(s_1)
s_2.index
print(s_2)
s_1.values
print(s_1)
s_3.values
print(s_3)
结果:
0 1
1 2
2 3
3 4
4 5
dtype: int64
a 1
b 2
d 3
e 4
f 5
dtype: int64
0 1
1 2
2 3
3 4
4 5
dtype: int64
0 Lily
1 Rose
2 Jack
dtype: object
2.操作
访问元素
示例:
import pandas as pd
s_1 = pd.Series([1,2,3,4,5])
index=['a','b','c','d','e']
s_2 = pd.Series(['lily','rose','jack'])
#查
#访间某个元素
print(s_1['d'])
#访问多个元素[Series的切片]
print(s_1['a':'d'])
#访问多个元素
print(s_1[['a','d']])
print(s_2[2])
print(s_2[0:2])
print(s_2[[0,2]])
print(s_1[4])
结果:
4
a 1
b 2
c 3
d 4
dtype: int64
a 1
d 4
dtype: int64
jack
0 lily
1 rose
dtype: object
0 lily
2 jack
dtype: object
5
删除:
示例:
import pandas as pd
s_1 = pd.Series([1,2,3,4,5],index=['a','b','c','d','e'])
#删除
s_1= s_1.drop('a')
print(s_1)
结果:
b 2
c 3
d 4
e 5
dtype: int64
判断一下某个值是否在Series里面:
示例:
import pandas as pd
s_2 = pd.Series(['lily','rose','jack'])
#判断一下某个值是否在Series里面
print('jim'!=s_2.values)#输出false或true
结果:
[ True True True]
重置索引
示例:
import pandas as pd
dc ={"namel":"w","name2":"z",
"name3":"j"}
s_4 = pd.Series(dc)
print(s_4)
#重置索引
s_4.index=range(0,len(s_4))
print(s_4)
结果:
namel w
name2 z
name3 j
dtype: object
0 w
1 z
2 j
dtype: object
3.数据框的两种查询方法
loc()方法和iloc()方法
示例:
import pandas as pd
import numpy as np
#生成指定日期
#datas = pd.date_range('20180101',periods=5)#产生一个时间数据,5个
df = pd.DataFrame(np.arange(30).reshape(5,6),index=['20180101','20180102','20180103','20180104','20180105'],columns=['A','B','C','D','E','F'])
#打印某个值
print(df.loc['20180103','B'])
#打印某列值
print(df.loc[:,'B'])
print(df.loc['20180103':'B'])
print(df.loc['20180103':,['B','D']])
#打印某行值
print(df.loc['20180101',:])
#打印某些行
print(df.loc['20180103':,:])
'''
iloc()方法
位置索引
'''
#获取某个数据
print(df.iloc[1,2])
#获取某列
print(df.iloc[:,2])
#获取某几列
print(df.iloc[:,[1,3]])
#获取某行
print(df.iloc[1,:])
#获取某些行
print(df.iloc[[1,2,4],:])
结果:
13
20180101 1
20180102 7
20180103 13
20180104 19
20180105 25
Name: B, dtype: int32A B C D E F
20180103 12 13 14 15 16 17
20180104 18 19 20 21 22 23
20180105 24 25 26 27 28 29B D
20180103 13 15
20180104 19 21
20180105 25 27
A 0
B 1
C 2
D 3
E 4
F 5
Name: 20180101, dtype: int32A B C D E F
20180103 12 13 14 15 16 17
20180104 18 19 20 21 22 23
20180105 24 25 26 27 28 29
8
20180101 2
20180102 8
20180103 14
20180104 20
20180105 26
Name: C, dtype: int32B D
20180101 1 3
20180102 7 9
20180103 13 15
20180104 19 21
20180105 25 27
A 6
B 7
C 8
D 9
E 10
F 11
Name: 20180102, dtype: int32A B C D E F
20180102 6 7 8 9 10 11
20180103 12 13 14 15 16 17
20180105 24 25 26 27 28 29
三、数据读取与保存
在实际的数据分析工作中,我们经常需要从外部文件读取数据,或者将处理好的数据保存到文件中。Pandas 支持多种常见的文件格式,如 CSV、Excel 等。
读取数据
示例:
# 读取 CSV 文件
df = pd.read_csv('data.csv')# 读取 Excel 文件
df = pd.read_excel('data.xlsx')
保存数据
示例:
# 保存为 CSV,index=False 表示不保存索引
df.to_csv('output.csv', index=False)# 保存为 Excel,index=False 表示不保存索引
df.to_excel('output.xlsx', index=False)
以上就是 Pandas 的一些基本运用。掌握了这些内容,你就可以应对大部分基础的数据处理和分析任务了。当然,Pandas 的功能远不止这些,还有很多高级功能等待你去探索。希望本文能帮助你快速入门 Pandas,在数据处理的道路上越走越远。