Pandas DataFrame切片器的基本操作及应用

Series是一维表格,每个元素带标签且有下标,兼具列表和字典的访问形式

import pandas as pd
s = pd.Series(data=[80,90,100],index=['语文','数学','英语'])
for x in s: #>>80 90 100
    print(x,end=" ")
print("")
print(s['语文'],s[1]) #>>80 90 标签和序号都可以作为下标来访问元素
print(s[0:2]['数学']) #>>90 s[0:2]是切片
print(s['数学':'英语'][1]) #>>100
for i in range(len(s.index)): #>>语文 数学 英语
    print(s.index[i],end = " ")
s['体育'] = 110 #在尾部添加元素,标签为'体育',值为110
s.pop('数学') #删除标签为'数学’的元素
s2 = s.append(pd.Series(120,index = ['政治'])) #不改变s
print(s2['语文'],s2['政治']) #>>80 120
print(list(s2)) #>>[80, 100, 110, 120]
print(s.sum(),s.min(),s.mean(),s.median())#输出和、最小值、平均值、中位数
print(s.idxmax(),s.argmax()) #>>体育 2 输出最大元素的标签和下标

DataFrame是带行列标签的二维表格,的每一列都是一个Series

import pandas as pd
pd.set_option('display.unicode.east_asian_width',True) 
#输出对齐方面的设置
scores = [['男',108,115,97],['女',115,87,105],['女',100,60,130],
['男',112,80,50]]
names = ['张三','李四','王五','赵六']
courses = ['性别','语文','数学','英语']
df = pd.DataFrame(data=scores,index = names,columns = courses)
print(df)

print(df.values[0][1],type(df.values))#>>108 
print(list(df.index)) #>>['张三', '李四', '王五', '赵六']
print(list(df.columns)) #>>['性别', '语文', '数学', '英语'] 
print(df.index[2],df.columns[2]) #>>王五 数学
s1 = df['语文'] #s1是个Series,代表'语文'那一列
print(s1['张三'],s1[0]) #>>108 108 张三语文成绩
print(df['语文']['张三']) #>>108 列索引先写
s2 = df.loc['李四'] #s2也是个Series,代表“李四”那一行
print(s2['性别'],s2['语文'],s2[2]) 
#>>女 115 87 李四的性别、语文和数学分数

Pandas DataFrame切片器的基本操作及应用_第1张图片

  DataFrame的切片:

行切片:

#DataFrame的切片:
#iloc[行选择器, 列选择器] 用下标做切片
#loc[行选择器, 列选择器] 用标签做切片
#DataFrame的切片是视图
df2 = df.iloc[1:3] #行切片,是视图,选1,2两行
df2 = df.loc['李四':'王五'] #和上一行等价
print(df2)

列切片:

df3 = df.iloc[:,0:3]    #列切片(是视图),选0、1、2三列
df3= df.loc[:,'性别':'数学'] #和上一行等价
print(df3)

Pandas DataFrame切片器的基本操作及应用_第2张图片

行列切片:

df4 = df.iloc[:2,[1,3]]  #行列切片
df4 = df.loc[:'李四',['语文','英语']] #和上一行等价
print(df4)

 

行列切片:

df5 = df.iloc[[1,3],2:4] #取第1、3行,第2、3列
df5 = df.loc[['李四','赵六'],'数学':'英语'] #和上一行等价
print(df5)

你可能感兴趣的:(python)