第二节
1、Series的属性与方法:
Series中一般常用的参数就是data、index,其中的data就是我们处理的数据,index就是这个数据的行索引
Series中的函数一般有index、values以及items,values、index、items返回的对象分别是List、Index、
Zip类型的数据,为了方便我们使用和观察数据,可以使用series.index.tolist()和list(series.items())
方法转化成List类型。用法如下:
***
from pandas import Series
name=["小明","小花","小东","小李"]
S1=Series(data=name)
print(S1)
print(S1.values)
print(S1.index.tolist()) #这里的tolist函数就是把index函数生成的对象转换为列表
print(list(S1.items())) #这里的list同样是把zip对象转换为列表
***
Series中的数据除了可以通过索引进行获取,还可以通过切片操作进行获取元素,而且如果一次性获取多个元素
还可以把这些元素的索引直接放在列表中进行多个元素的获取
***
from pandas import Series
emp=['001','002','003','004','005','006']
name=['亚瑟', '后裔','小乔','哪吒' ,'虞姬','王昭君']
series = Series(data=name,index=emp)
# 使用索引值获取单个数据
print(series['001'])
# 使用索引值获取多个不连续的数据
print('索引下标',series[['002','004']])
# 使用切片获取连续的数据
print('索引切片',series['001':'004'])
***
除此之外Series对象可以直接使用循环遍历出里面的值,也可以使用Series.keys()获取该对象的索引,同时也可以通过
Series对象中的items()函数把里面的索引和值找出来
2、DataFrame中的数据是按着行和列进行排列的,可以根据行和列进行选择、遍历和修改
***
df_dict = {
'name':['ZhangSan','LiSi','WangWu','ZhaoLiu'],
'age':['18','20','19','22'],
'weight':['50','55','60','80']
}
df = pd.DataFrame(data=df_dict,index=['001','002','003','004'])
***
(1)查看DataFrame中数据的维度:
weidu=df.ndim
(2)获取DataFrame的行数和列数:
hanglie=df.shape 注:返回值是一个元组,表示的就是行数和列数
(3)获取行索引和列索引:
print(df.index.tolist())————返回行索引
print(df.columns.tolist())————返回列索引
(4)获取DataFrame数据中的前面几行或者是后面几行可以通过切片或者是函数:
print(df[0:2])———————————————用切片获取前2行的数据
print(df.head(2))————————————用函数获取前2行的数据
print(df[索引的长度-2::])————用切片获取后2行的数据
print(df.tail(2))—————————————用函数获取后2行的数据
【神仙的自我修养】
# df[]不支持直接输入标签索引获取行数据,例如:df['001']
# 这种方式可以获取一列数据,列如:df['name']
# 如果想获取多行里面的某几列可写成:df[行][列],例如:df[1:3][['name','age']],将列索引值放
到同一个列表中,再将列表放到第二个方括号中
(5)获取数据:
通过标签索引来获取数据,即使用loc函数来获取数据,用法:
df.loc(行,列)
5.1、获取某一行某一列的数据
print(df.loc['001','name'])
5.2、某一行多列的数据
print(df.loc['001',['name','weight']])
5.3、一行所有列
print(df.loc['001',:])
5.4、选择间隔的多行多列
print(df.loc[['001','003'],['name','weight']])
5.5、选择连续的多行和间隔的多列
print(df.loc['001':'003','name':'weight'])
也可以直接通过位置索引来获取数据,即使用iloc函数获取数据,用法:
df.iloc(行,列)
5.6、取一行
print(df.iloc[1])
5.7、取连续多行
print(df.iloc[0:2])
5.8、取间断的多行
print(df.iloc[[0,2],:])
5.9、取某一列
print(df.iloc[:,1])
5.10、某一个值
print(df.iloc[1,0])
注:loc函数和iloc函数在进行切片操作时对于切片终点的取值是不一样的,loc函数使用即根据标签索引是包含终点数据的,
而iloc函数即使用位置索引获取数据是不包含终点数据,和列表的切片类似
(6)按行/列遍历数据
按行遍历
iterrows(): 按行遍历,将DataFrame的每一行转化为(index, Series)对。index为行索引值,Series为该行对应的数据。
for index,row_data in df.iterrows():
print(index,row_data)
按列遍历
iteritems():按列遍历,将DataFrame的每一列转化为(column, Series)对。column为列索引的值,Series为该列对应的数据。
for col,col_data in df.iteritems():
print(col)
Series和pandas讲解
最新推荐文章于 2025-02-05 10:08:20 发布