dataframe按行列获取数据的方法总结

45 篇文章 1 订阅
27 篇文章 1 订阅

1.生成数据

生成1-25的数据,并转为5×5的数组,调用DataFrame转为dataframe。

arr=np.arange(1,26,1).reshape((5,5))
df=pd.DataFrame(arr)
print(df)
    0   1   2   3   4
0   1   2   3   4   5
1   6   7   8   9  10
2  11  12  13  14  15
3  16  17  18  19  20
4  21  22  23  24  25

2.基本属性

获取dataframe的行列数、行列索引等

print(f'形状:{df.shape}')
print(f'列索引:{list(df.columns)}')
print(f'行索引:{list(df.index)}')
形状:(5, 5)
列索引:[0, 1, 2, 3, 4]
行索引:[0, 1, 2, 3, 4]

3.按坐标取单个元素

直接通过[],在[]中写行列两个元素即可获取指定坐标的元素。

print(f'(1,2):{df.iloc[1,2]}')

#(1,2):8

4.按行索引取数据

print(f'第1行\n{df.iloc[1]}')
print(f'第1-3行\n{df.iloc[1:4]}')

'''
第1行
0     6
1     7
2     8
3     9
4    10
Name: 1, dtype: int32
第1-3行
    0   1   2   3   4
1   6   7   8   9  10
2  11  12  13  14  15
3  16  17  18  19  20
'''

5.按列索引取

print(f'第1列\n{df[1]}')
print(f'第1-3列\n{df[df.columns[1:4]]}')

'''
第1列
0     2
1     7
2    12
3    17
4    22
Name: 1, dtype: int32
第1-3列
    1   2   3
0   2   3   4
1   7   8   9
2  12  13  14
3  17  18  19
4  22  23  24
'''

注意:当需要获取多;列时,这里不能像行一样直接使用df[1:4],这是因为当直接使用[]获取时,若给定的索引为整数索引则按行取,为字符索引则按列取。当使用默认的整数索引时,是不能直接通过整数取,这是我们只需要先获取列索引名,再指定具体的列索引即可。若为字符索引时则可直接获取。

6.按块索引

在按行或列的基础上将list作为索引即可取不连续的块。

print(f'第1,3,4行\n{df.loc[[1,3,4]]}')
print(f'第1,3,4列\n{df[[1,3,4]]}')
print(f'第(2,3)*(1,3,4)形成的交叉块\n{df.iloc[[2,3],[1,3,4]]}')

'''
第1,3,4行
    0   1   2   3   4
1   6   7   8   9  10
3  16  17  18  19  20
4  21  22  23  24  25
第1,3,4列
    1   3   4
0   2   4   5
1   7   9  10
2  12  14  15
3  17  19  20
4  22  24  25
第(2,3)*(1,3,4)形成的交叉块
    1   3   4
2  12  14  15
3  17  19  20
'''

7.整体原则

  • dataframe若直接使用[]获取,整数索引为行,字符索引为列
  • 直接使用[],为按行取,通过.loc[]为按行字符索引取,.iloc[]为按行整数索引取
  • 取不连续块的时候,通过list作为索引值

ix混合索引的方式将被遗弃,本文就不再叙述。

  • 7
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Python中,通过pandas库的DataFrame可以方便地按行号和列号来获取数据,以及进行数据切片操作。 获取数据可以通过以下两种方式进行: 1. 按行获取数据:可以使用`iloc`属性来按照行号获取数据。例如,要获取第3行的数据,可以使用`df.iloc[2]`。这将返回一个Series对象,其中包含第3行的数据。 2. 按列号获取数据:可以直接通过DataFrame的列名来获取相应的列数据。例如,要获取名为"column_name"的列数据,可以使用`df["column_name"]`。这将返回一个Series对象,其中包含此列的数据。 数据切片操作允许我们按照行号和列号的范围,提取出DataFrame的一个子集。以下是一些示例: 1. 行切片:要提取某一范围内的连续行,可以使用`df[start_row:end_row]`,其中start_row为起始行号,end_row为结束行号。 2. 列切片:要提取某一范围内的连续列,可以使用`df.iloc[:, start_col:end_col]`,其中start_col为起始列号,end_col为结束列号。 3. 行列同时切片:要提取某一范围内的连续行和列,可以结合使用行切片和列切片。例如,`df.iloc[start_row:end_row, start_col:end_col]`会返回一个新的DataFrame,其中包含指定范围内的数据。 需要注意的是,切片操作是基于行号和列号进行的,并且是左闭右开区间。也就是说,起始行/列号会被包含在切片中,而结束行/列号则不包含在切片中。 以上是关于Python DataFrame按行号和列号获取数据以及数据切片操作的简要说明,希望对你有所帮助。如果有任何疑问,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Regent Wan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值