下面是关于“Pandas DataFrame索引行列的实现”的攻略。
Pandas DataFrame的索引
Pandas DataFrame是一种二维表格数据结构,由于其数据处理和分析的便捷性,近年来受到越来越多数据科学家和分析师的青睐。在使用 Pandas DataFrame 时,最常用的方式就是使用索引来定位并处理表格中的数据。
行索引
Pandas DataFrame 数据结构中,行索引默认是从0开始自增的数字索引。行索引可以通过 df.index
属性访问,该属性返回一个 Pandas Index 对象,该对象与 Python 列表类似。
示例如下:
import pandas as pd
data = {'name': ['A', 'B', 'C', 'D', 'E'],
'age': [20, 22, 19, 25, 21],
'gender': ['M', 'F', 'M', 'F', 'M']}
df = pd.DataFrame(data)
print(df.index)
# 输出结果为 RangeIndex(start=0, stop=5, step=1)
在以上示例中,df.index
返回的是一个 RangeIndex
对象,它表示行索引从0开始自增的索引,一共包含5行数据。
此外,我们还可以为 Pandas DataFrame 指定自定义的行索引,例如使用日期、文本、整数等其他类型的索引。示例如下:
import pandas as pd
data = {'name': ['A', 'B', 'C', 'D', 'E'],
'age': [20, 22, 19, 25, 21],
'gender': ['M', 'F', 'M', 'F', 'M']}
# 创建以日期为行索引的 Pandas DataFrame
df = pd.DataFrame(data, index=pd.date_range('20220101', periods=5))
print(df.index)
# 输出结果为 DatetimeIndex(['2022-01-01', '2022-01-02', '2022-01-03', '2022-01-04',
# '2022-01-05'],
# dtype='datetime64[ns]', freq='D')
在以上示例中,我们使用 Pandas 中的 pd.date_range()
函数创建了一个日期范围,并将其作为行索引传递给了 pd.DataFrame()
函数,从而创建了一个以日期为索引的 Pandas DataFrame 对象。运行结果显示了我们自定义的日期索引。
列索引
除了行索引,我们还可以使用列索引来访问 Pandas DataFrame 对象中的列。在 Pandas DataFrame 中,可以通过 df.columns
属性访问列索引,该属性返回一个 Pandas Index 对象,该对象与 Python 列表类似。
示例如下:
import pandas as pd
data = {'name': ['A', 'B', 'C', 'D', 'E'],
'age': [20, 22, 19, 25, 21],
'gender': ['M', 'F', 'M', 'F', 'M']}
df = pd.DataFrame(data)
print(df.columns)
# 输出结果为 Index(['name', 'age', 'gender'], dtype='object')
在以上示例中,df.columns
返回的是一个 Index
对象,它表示列索引包含了表格中的所有列。
使用索引访问数据
在 Pandas DataFrame 中,可以通过行列索引来访问表格中的数据。其中,行列索引的几种常见访问方式如下:
- 使用
.loc[]
方法通过行列索引(标签)访问数据; - 使用
.iloc[]
方法通过行列位置(整数)访问数据; - 直接使用列名称访问数据。
在下面的示例中,我们将展示这几种索引方式的使用方法,以及它们之间的异同。
示例1:使用.loc[]方法访问数据
import pandas as pd
data = {'name': ['A', 'B', 'C', 'D', 'E'],
'age': [20, 22, 19, 25, 21],
'gender': ['M', 'F', 'M', 'F', 'M']}
df = pd.DataFrame(data)
# 使用.loc[]方法获取第2行(行索引为1)和第3列(列索引为'gender')的数据
print(df.loc[1, 'gender'])
# 输出结果为 F
在以上示例中,我们使用 .loc[]
方法访问了 DataFrame 中第2行第3列的数据。需要注意的是,这里使用的是行列的标签值,而不是行列的位置。
示例2:使用.iloc[]方法访问数据
import pandas as pd
data = {'name': ['A', 'B', 'C', 'D', 'E'],
'age': [20, 22, 19, 25, 21],
'gender': ['M', 'F', 'M', 'F', 'M']}
df = pd.DataFrame(data)
# 使用.iloc[]方法获取第2行(行索引为1)和第3列(列索引为2)的数据
print(df.iloc[1, 2])
# 输出结果为 F
在以上示例中,我们使用 .iloc[]
方法访问了 DataFrame 中第2行第3列的数据。需要注意的是,这里使用的是行列的位置,而不是行列的标签值。
示例3:直接使用列名称访问数据
import pandas as pd
data = {'name': ['A', 'B', 'C', 'D', 'E'],
'age': [20, 22, 19, 25, 21],
'gender': ['M', 'F', 'M', 'F', 'M']}
df = pd.DataFrame(data)
# 直接使用列名称获取'gender'列的所有数据
print(df['gender'])
# 输出结果为
# 0 M
# 1 F
# 2 M
# 3 F
# 4 M
# Name: gender, dtype: object
在以上示例中,我们直接使用了 Pandas DataFrame 中的列名称访问了gender
列的所有数据。
小结
使用 Pandas DataFrame 操作数据时,掌握行列索引的使用方法是至关重要的。在访问数据时,以 .loc[]
和 .iloc[]
方法为主,可以使用它们的行列标签或位置来访问数据。如果使用列名称来访问数据,则使用 df['column_name']
的方式即可。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:pandas DataFrame索引行列的实现 - Python技术站