标签:隐式 结构 关注 item lan 计算 元素 png dataframe
DataFrame的数据结构分为行和列,一行和一列的交叉位置是一个cell,该cell的位置是由行索引和列索引共同确定的。可以通过at/iat,或loc/iloc属性来访问数据框的元素,该属性后跟一个中括号:[row,col],中括号内 row表示行索引或行标签,col表示列索引或列标签。如果省略row, 那么row维度使用“:”代替,格式是 [ :, col] ,表示访问所有行的特定列;如果省略col ,格式是[row],表示访问特定行的所有列。
import pandas as pd data = {‘user‘:[‘小王‘,‘小李‘,‘小明‘],‘shcool‘:[‘清华‘,‘北大‘,‘科大‘],‘class‘:[‘数学‘,‘历史‘,‘计算机‘]} df = pd.DataFrame(data,index=[‘a‘,‘b‘,‘c‘]) df
user | shcool | class | |
---|---|---|---|
a | 小王 | 清华 | 数学 |
b | 小李 | 北大 | 历史 |
c | 小明 | 科大 | 计算机 |
通过元素的行和列索引对来访问单个cell,at 和 iat 属性只能访问当个cell,区别是at可以使用字符串和整数,而iat只能使用整数。
at 和 iat 的格式是:[row, column], 第一个维度是行索引,第二个维度是列索引。
df.iat[1,1]
‘北大‘
df.at[‘b‘,‘shcool‘]
‘北大‘
loc 和 iloc 属性可以访问多个cell,区别是loc可以使用标签和布尔(掩码)数组,不能使用整数位置(整数代表元素的位置),而iloc只能使用整数位置。
loc 和 iloc的格式是:
# 访问单行或多行,包括所有列 [row] # 访问单行或多行,但column 确定的列元素 [row, column]
这里的访问的实际是隐式索引值。
df.iloc[[0,1]]
user | shcool | class | |
---|---|---|---|
a | 小王 | 清华 | 数学 |
b | 小李 | 北大 | 历史 |
df.iloc[[0,1],[1,2]]
shcool | class | |
---|---|---|
a | 清华 | 数学 |
b | 北大 | 历史 |
主要基于标签,但也可以与布尔数组一起使用。
df.loc[[‘a‘,‘b‘]]
user | shcool | class | |
---|---|---|---|
a | 小王 | 清华 | 数学 |
b | 小李 | 北大 | 历史 |
df.loc[[‘a‘,‘b‘],[‘shcool‘,‘class‘]]
shcool | class | |
---|---|---|
a | 清华 | 数学 |
b | 北大 | 历史 |
a:b
a和b是都包含在内的,为左闭右闭
。row和column都一样。df.loc[‘a‘:‘b‘,‘user‘:‘class‘]
user | shcool | class | |
---|---|---|---|
a | 小王 | 清华 | 数学 |
b | 小李 | 北大 | 历史 |
iloc
使用隐式索引值切片左闭右开
df.iloc[0:1,0:1]
user | |
---|---|
a | 小王 |
df.loc[[True, False, True],[True, False, True]]
user | class | |
---|---|---|
a | 小王 | 数学 |
c | 小明 | 计算机 |
df.loc[‘a‘:‘b‘,[True, False, True]]
user | class | |
---|---|---|
a | 小王 | 数学 |
b | 小李 | 历史 |
通过列名来访问DataFrame的数据,选择特定列的所有数据行。有几种种格式是:
df[‘user‘]
a 小王 b 小李 c 小明 Name: user, dtype: object
df.user
a 小王 b 小李 c 小明 Name: user, dtype: object
df[[‘user‘,‘class‘]]
user | class | |
---|---|---|
a | 小王 | 数学 |
b | 小李 | 历史 |
c | 小明 | 计算机 |
在pandas的1.0.0版本开始,移除了Series.ix and DataFrame.ix 方法。故此种方法不能使用了。
df[0:1]
user | shcool | class | |
---|---|---|---|
a | 小王 | 清华 | 数学 |
df[‘a‘:‘b‘]
user | shcool | class | |
---|---|---|---|
a | 小王 | 清华 | 数学 |
b | 小李 | 北大 | 历史 |
df[0:1][‘user‘]
a 小王 Name: user, dtype: object
df[0:1][[‘user‘,‘class‘]]
user | class | |
---|---|---|
a | 小王 | 数学 |
iterrows()返回值为元组(index,row) ,每次迭代返回一行数据
for index,row in df.iterrows(): print(index,‘----‘,row[0],row[1],row[2])
a ---- 小王 清华 数学 b ---- 小李 北大 历史 c ---- 小明 科大 计算机
遍历数据框,返回的是命名元组
for row in df.itertuples(): print(row,‘--‘,row[0],‘-‘,row.user)
Pandas(Index=‘a‘, user=‘小王‘, shcool=‘清华‘, _3=‘数学‘) -- a - 小王 Pandas(Index=‘b‘, user=‘小李‘, shcool=‘北大‘, _3=‘历史‘) -- b - 小李 Pandas(Index=‘c‘, user=‘小明‘, shcool=‘科大‘, _3=‘计算机‘) -- c - 小明
使用items()或 iteritems()遍历数据框,返回值为元组(column,Series),每次迭代返回一列数据
for col_name,col in df.items(): print(col_name,col[0],col[1],col[2])
user 小王 小李 小明 shcool 清华 北大 科大 class 数学 历史 计算机
更多文章,请关注:
来源:站长
标签:隐式 结构 关注 item lan 计算 元素 png dataframe
原文地址:https://www.cnblogs.com/1994jinnan/p/12728606.html