读取数据的处理
访问某一列,使用dataframe数据的每一列的表头名 作为属性,obj.表头名
中文作为属性也可以
例如,df.中国 等价于 df[‘中国’]
对于多列的访问,可以将一个列表作为参数放入中括号中
a=pd.read_excel(r'my_excel.xlsx',encoding='gbk')
print(a)
print(a.columns)
print('这是使用 =属性名称=访问一列===')
print(a.名字) #这里使用中文作为属性也是可以的
print('这是使用 =索引名称=访问一列===')
print(a['名字']) #使用中括号范文某一列
print(a[['名字','age']]) #这里需要注意的是,将一个列表作为了索引的参数
'''
名字 age sex
0 王贵 24 男
1 狗子 35 男
2 黑蛋 23 女
3 小五 5 男
4 李四 6 男
5 小红 4 女
Index(['名字', 'age', 'sex'], dtype='object')
这是使用 =属性名称=访问一列===
0 王贵
1 狗子
2 黑蛋
3 小五
4 李四
5 小红
Name: 名字, dtype: object
这是使用 =索引名称=访问一列===
0 王贵
1 狗子
2 黑蛋
3 小五
4 李四
5 小红
Name: 名字, dtype: object
名字 age
0 王贵 24
1 狗子 35
2 黑蛋 23
3 小五 5
4 李四 6
5 小红 4
'''
DataFrame数据对象的方法
df.loc[A,B ] 选择行和列(location)
loc works on labels in the index.
参数范围:使用df对象的columns、index包含的标签范围内的变量筛选数据
A:行标签选择;B:列标签选择
A和B: 1.列表(表示某几个散列的行)、
2.切片类型(范围之间的数据)(不能是元组)
3.单独一个数值(某一行)
4.满足逻辑变量的行
如果对那行部分不需要做选择可以使用**冒号(:)**代替这部分。
a=pd.read_excel(r'my_excel.xlsx',encoding='gbk')
print(a)
print('这是==范围选择==之后的数据======')
print(a.loc[[0,2],'名字':'sex'])
print('这是==逻辑判断==之后的数据======')
print(a.loc[a['名字']=='王贵',:])
'''
名字 age sex
0 王贵 24 男
1 狗子 35 男
2 黑蛋 23 女
3 小五 5 男
4 李四 6 男
5 小红 4 女
6 王贵 24 男
这是==范围选择==之后的数据======
名字 age sex
0 王贵 24 男
2 黑蛋 23 女
这是==逻辑判断==之后的数据======
名字 age sex
0 王贵 24 男
6 王贵 24 男
'''
df.iloc[A,B ] (integer location)
参考:https://blog.csdn.net/zxyhhjs2017/article/details/82804758
iloc works on the positions in the index (so it only takes integers).
iloc()的两个参数全部只能是整数,表示数据的第几行和第几列
本质的区别:
iloc函数参数,总是按照表中位置数据(第几行,第几列)选择数据
loc函数的参数值(对应的标签)
1.当df对象定义了columns和index的值时,只能是定义过的标签
2.当df对象未定义columns和index的值时,默认数据第一行是 columns,index是从0开始的一维数组
容易混淆的,
当未定义df的index时,iloc和loc函数的第一个参数都是数据,
但loc[0:6,:]表示:第1行到第7行#访问标签
iloc[0:6,:]表示的是第1行到第6行#使用整型切片
a=pd.read_excel(r'my_excel.xlsx',encoding='gbk')
b=pd.read_excel(r'my_excel.xlsx',encoding='gbk')
b.index=['fir','sec','thre','fo','fi','six','sev']
print(a)
print('这是==a的loc==之后的数据======')
print(a.loc[0:2,'名字':'age'])
print('这是==a的iloc==之后的数据======')
print(a.iloc[0:2,0:2])
print('!'*10+'这是添加了index后的b==')
print(b)
print('这是==b的loc==之后的数据======')
print(b.loc['fir':'sec','名字':'age'])
print('这是==b的iloc==之后的数据======')
print(b.iloc[0:2,0:2])
'''
名字 age sex
0 王贵 24 男
1 狗子 35 男
2 黑蛋 23 女
3 小五 5 男
4 李四 6 男
5 小红 4 女
6 王贵 24 男
这是==a的loc==之后的数据======
名字 age
0 王贵 24
1 狗子 35
2 黑蛋 23
这是==a的iloc==之后的数据======
名字 age
0 王贵 24
1 狗子 35
!!!!!!!!!!这是添加了index后==
名字 age sex
fir 王贵 24 男
sec 狗子 35 男
thre 黑蛋 23 女
fo 小五 5 男
fi 李四 6 男
six 小红 4 女
sev 王贵 24 男
这是==b的loc==之后的数据======
名字 age
fir 王贵 24
sec 狗子 35
这是==b的iloc==之后的数据======
名字 age
fir 王贵 24
sec 狗子 35
'''