访问 DataFrame 中的数据
访问DataFrame中的数据
现在是时候处理这些 DataFrame 中的数据了。因此,在本文中,我们将学习如何在 DataFrame 中选择和访问数据。
这可以通过多种方式完成,但我想将其分为 3 类访问数据,
- Values
- Rows
- 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 中分配、添加或修改数据”。
非常欢迎与本文相关的反馈或查询。
谢谢阅读。
常见问题FAQ
- 程序仅供学习研究,请勿用于非法用途,不得违反国家法律,否则后果自负,一切法律责任与本站无关。
- 请仔细阅读以上条款再购买,拍下即代表同意条款并遵守约定,谢谢大家支持理解!