目录
前言
安装
pip install pandas
使用
import pandas as pd
DataFrame:一种二维表状数据结构,用于存储和操作数据。
Series:一维标记数组,类似于电子表格中的列。
Series:一维标记数组,类似于电子表格中的列。
一、series的创建
Series是一维标签化数组,Series适用于进行简单的统计分析,如计算均值、中位数、最大值、最小值等。Series还可以作为DataFrame中单个列的数据结构。
1.创建series对象
import pandas as pd
s = pd.Series(np.random.rand(5))
print(s)
print(type(s))
2.series对象取值
s2 = pd.Series(data=[1,2,3,4],index=['a','b','c','d'])
print(s2)
# 取2
print(s2['b'])
print(s2[1])
# 同时取2和3
print(s2[1:3])
print(s2['b':'c'])
print(s2['b':'d'])
s3 = pd.Series(np.random.rand(3)*100)
print(s3[s3>60])
3.series属性
s4 = pd.Series(np.random.rand(3), index = ['a','b','c'])
print(s4)
print(s4.values) # 获取值
print(s4.index) # 获取索引
print(s4.index.tolist()) # 把获取的索引转成列表
print(s4.dtype) # 获取数据的元素类型
print(s4.size) # 元素的个数
print(s4.shape) # 几行几列
print(s4.ndim) # 维度数
二 、DataFrame
DataFrame是二维标签化数据结构,可以看作是由多个Series组成的。DataFrame适用于进行复杂的数据分析和处理,包括数据清洗、转换、聚合等。DataFrame提供了丰富的功能,如透视表 数据分组、合并、重塑等,非常适合处理具有不同数据类型的多维数据集。
1.DataFrame创建
#1.使用二维数组创建
df1=pd.DataFrame(data = np.random.randint(0,20,(4,5)),index=['A','B','C','D'],columns=['a','b','c','d','e'])
print(df1)
# 2.使用字典创建 (行索引由index决定,列索引由字典的键决定)
data1={ 'a':[1,2,3],
'b':[3,4,5],
'c':[5,6,7]
}
df2 = pd.DataFrame(data1)
#3.由字典组成的列表创建
data4 =[{'one':1,'two':2},{'one':3,'two':4,'three':5}]
df4 = pd.DataFrame(data4)
#4.由字典组成的字典创建
data5 = {'Jack':{'math':90,'english':89,'art':78},
'Marry':{'math':82,'english':95,'art':92},
'Tom':{'math':78,'english':67}}
df5 = pd.DataFrame(data5)
2. DataFrame()对象常用属性
data = {'name':['Jack','Tom','Mary'],
'age':[18,19,20],
'gender':['F','M','W']}
df6 = pd.DataFrame(data,index=['a','b','c'])
print(df6)
print('*'*20)
print(df6.shape) # 几行几列
# 行索引
print(df6.index.tolist())
# 列名
print(df6.columns.tolist())
# 前2行
print(df6.head(2))
# 取age
print(df6['age'])
3.DataFrame取值
方法一不常用
# 取age name
print(df6[['age','name']]) # 如果取多列的话,要加一层中括号
# 取第一行
print(df6[0:1])
方法二:
通用方法,使用loc 或iloc
df.loc 通过标签索引取值 df.iloc 通过位置索引取值
data = {'name':['Jack','Tom','Mary'],
'age':[18,19,20],
'gender':['F','M','W']}
df6 = pd.DataFrame(data,index=['a','b','c'])
# 取18
print(df6.iloc[0,1]) # 逗号前是行,逗号后是列
print(df6.loc['a','age'])
print(df6.loc['a':'c'])
print('*'*20)
print(df6.iloc[0,[0,2]])
三、常见操作
1.查、改
代码如下(示例):
s = pd.Series(np.random.rand(100))
# 查看前10个
print(s.head(10))
print(s.head()) # 默认取5个
# 查看最后5个
print(s.tail())
s[3] = 888 # 把下标为3对应的值修改为888
print(s)
2.删
代码如下(示例):
data = {
'员工ID': [1, 2, 3, 4, 5],
'姓名': ['张三', '李四', '王五', '赵六', '孙七'],
'部门': ['HR', 'IT', 'IT', '财务', 'HR'],
'职位': ['经理', '工程师', '分析师', '会计', '助理'],
'薪资': [50000, 60000, 55000, 65000, 45000]
}
df = pd.DataFrame(data)
df2 = df.drop(columns='薪资')
df.drop(columns='薪资',inplace=True) # 直接在原表上删除薪资列
3.新增 salary 列
df6['salary'] = [1000,2000,3000]
四.排序
1.series排名(了解)
df7 = pd.Series([7, -5, 7, 4, 2, 0, 4])
df7.rank(method='first')
2. DataFrame排序
1)按索引排序 sort_index()
2)按值排序 sort_values()
data = {'name':['Jack','Tom','Mary'],
'age':[18,19,20],
'gender':['F','M','W']}
df6 = pd.DataFrame(data,index=['a','b','c'])
# 1)按索引排序 sort_index()
df7 = df6.sort_index(ascending=False) # 默认是升序排序; 直接在原数据上修改 inplace=True
# 2)按值排序 sort_values()
df6.sort_values(by='age',ascending=False) # ascending默认升序排序 by='age'依据age列进行排序
总结
Pandas是一个强大的库,简化了Python中的数据操作和分析过程。