访问 DataFrame 中的数据

作者 : 慕源网 本文共3109个字,预计阅读时间需要8分钟 发布时间: 2021-10-7 共508人阅读

访问DataFrame中的数据

至此我们已经了解了Creating DataFrames以及它的各种属性是什么(参考我之前的文章
现在是时候处理这​​些 DataFrame 中的数据了。因此,在本文中,我们将学习如何在 DataFrame 中选择和访问数据。
这可以通过多种方式完成,但我想将其分为 3 类访问数据,
  1. Values
  2. Rows
  3. Columns
让我们以下面的DataFrame为例了解如何以这3种方式访问​​数据,

通过Value访问数据

  • 它类似于访问数组中的数据,我们提到了索引,它在该索引处获取数据。
  • 考虑上面的例子,我们想要获取学生 A 在 2019 年在 Science 中的表现——我们将使用列“Science”和index “2019”;即science [‘2019’] 或science [1]。
  • 语法: <DataFrameObject>. <column_name[row_name]>
  • 语法: <DataFrameObject>. <column_name[row_index]>
  • 此外,我们可以使用属性“at”和“iat”,这两个属性也用于获取特定索引处的值,但我们在这里一起提到行和列名称/索引。
  • 语法: <DataFrameObject>. <at[row_name,column_name]>
  • 语法: <DataFrameObject>. <iat[row_index,column_index]>
import pandas as pd  
dict= {'English':[85,73,98], 'Math':[60,80,58], 'Science':[90,60,74],'French': [95,87,92] }  
df=pd.DataFrame(dict,index=['2018','2019','2020'])  
print(df)  
print('\n')  
print('Method 1:',df.Math['2019'])  
print('Method 2:',df.Science[1])  
print('Method 3:',df.at['2020','Math'])  
print('Method 4:',df.iat[2,1])  

输出

通过Rows访问数据

  • 您只需要提及要显示的行名称。
  • 如果我们想访问任何特定的行,我们使用关键字 loc。

句法

<DataFrameObject>. <loc[row_name,column_name]>
比如你想显示学生A的报告,其中必须有2019年获得的所有科目的数字。所以这里的行是“2019”,所有列都被使用。我们可以写,
DataFrameObject.loc[‘2019’,:]
“:” – 表示显示所有列,因此根据上面的语句,它将选取第 2019 行和所有列。
  • 您也可以一次访问多行,假设您现在想要显示除 2019 和 2020 之外的所有科目的学生 A 的报告。
  • 我们可以这样写:  DataFrameObject.loc[‘2019′:’2020’,:]
import pandas as pd  
dict= {'English':[85,73,98], 'Math':[60,80,58], 'Science':[90,60,74], 'French': [95,87,92] }  
df=pd.DataFrame(dict,index=['2018','2019','2020'])  
print(df)  
print('\n')  
print('To access a row:')  
print('\n')  
print(df.loc['2019',:],'\n')  
print('To access multiple rows:')  
print('\n')  
print(df.loc['2019':'2020',:])    

输出

通过Columns访问数据

在上面的部分中,我们学习了如何显示特定行的记录,什么是我们想要在我们想要特定列的地方显示相同的报表。· 你只需要提到你想要显示的列名。
句法
<DataFrameObject>. <[column_name]>
例如,现在我们想要学生 A 多年来的报告,但只需要科学科目。所以在这里我们将考虑所有行,但列是“科学”。我们可以写,
DataFrameObject.[’ Science’]
如果您想访问多个要使用的列,
句法
<DataFrameObject>. <[column_name1, column_name2]>
句法
<DataFrameObject>. <loc[: ,column_name1:column_name2]>
import pandas as pd  
dict= {'English':[85,73,98], 'Math':[60,80,58], 'Science':[90,60,74], 'French': [95,87,92] }  
df=pd.DataFrame(dict,index=['2018','2019','2020'])  
print(df)  
print('\n')  
print('To access a column:')  
print('\n')  
print(df['Science'],'\n')  
print('To access multiple columns:')  
print('\n')  
print(df.loc[:,'Science':'French'])

输出

如果我们还想要特定范围的行和列怎么办?

我们使用上面学到的相同语法,并提到我们想要访问的特定行和列名称。
假设,我们只想显示学生 A 2018 年和 2019 年的英语和科学科目的报告。
import pandas as pd  
dict= {'English':[85,73,98], 'Math':[60,80,58], 'Science':[90,60,74], 'French': [95,87,92] }  
df=pd.DataFrame(dict,index=['2018','2019','2020'])  
print(df.loc['2018':'2019','English':'Science'])   

输出

当我们使用“column1:column3”时;这不仅意味着它将显示 column1 和 column3,这意味着它将显示从 column1 到 column3 的所有值,包括 column1 和 column2。行的情况相同。
但毕竟,这个问题出现了,
  • 如果我的文件很大并且我们不记得行和列名称来访问它们怎么办?
  • 如果 DataFrame 对象不包含行或列标签怎么办?
  • 如果你想从这种 DataFrame 中提取一个子集,在上述情况下你会怎么做?
答案是索引值。这是通过 Slicing DataFrames 完成的。
您必须知道关键字 loc。但是现在如果你想使用索引值,那么要使用的关键字是 iloc。
import pandas as pd  
dict= {'English':[85,73,98], 'Math':[60,80,58], 'Science':[90,60,74], 'French': [95,87,92] }  
df=pd.DataFrame(dict,index=['2018','2019','2020'])  
print(df)  
print('\n')  
print('Using Index value with iloc:')  
print('\n')  
print(df.iloc[0:2,1:3])   

输出

每当使用 ‘iloc’- [2:6]; 这意味着从 2 开始到 6-1=5 结束,所以这从 2 到 5

概括

在本文中,我们学习了如何选择和访问 dataFrame 中的数据。我们将在我的 PANDAS 系列文章中了解更多内容。苦练!
在我的下一篇文章中,我们将学习“如何在 DataFrame 中分配、添加或修改数据”。
非常欢迎与本文相关的反馈或查询。
谢谢阅读。

慕源网 » 访问 DataFrame 中的数据

常见问题FAQ

程序仅供学习研究,请勿用于非法用途,不得违反国家法律,否则后果自负,一切法律责任与本站无关。
请仔细阅读以上条款再购买,拍下即代表同意条款并遵守约定,谢谢大家支持理解!

发表评论

开通VIP 享更多特权,建议使用QQ登录