概述
Pandas 的数据框可以看作是 Numpy 中的二维数组。
1. DataFrame对象行操作
1) loc与iloc区别注意
行操作与 Numpy 二维数组的方法类似,特别要注意的是 loc 和 iloc 的区别。示例代码如下。
In [1]: import pandas as pd
In [2]: df = pd.DataFrame({'a': [1, 2, 3], 'b': ['a', 'b', 'c'],'c': ["A","B","C"]})
...: df
Out[2]:
a b c
0 1 a A
1 2 b B
2 3 c C
In [3]: df.loc[1,:] # 选择标签为1的行数据
Out[3]:
a 2
b b
c B
Name: 1, dtype: object
In [4]: df.loc[1:2,:] # 选择标签为1、2的行数据
Out[4]:
a b c
1 2 b B
2 3 c C
In [5]: df.iloc[1:2,:] # 注意当使用iloc时,只返回标签为1的行数据
Out[5]:
a b c
1 2 b B
2)DataFrame对象倒序操作
这里的倒序方法和 Python 中自带的 list 的索引方法相同,可以设置起始点和终止点以及步长。Python 的特点就是可以将步长设为-1,这样就是倒序的索引了。
In [6]: df.loc[::-1,:] # 选择所有行,步长为-1,所以为倒序
Out[6]:
a b c
2 3 c C
1 2 b B
0 1 a A
In [7]: df.loc[0:2:2,:] # 选择0至2行,步长为2
Out[7]:
a b c
0 1 a A
2 3 c C
3) 选择符合条件的值
我们经常在操作数据框的时候选择某些符合条件的值,在 DataFrame 中这样的操作可以简化为两个步骤。
第一步:获得符合条件的元素的索引。
第二步:使用该索引对数据框中的元素进行索引。
In [8]: select = df.loc[:,"a"] >= 2 # 条件筛选,选择"a"列中大于2的元素
...: df.loc[select,:]
Out[8]:
a b c
1 2 b B
2 3 c C
4) DataFrame对象增加行
我们可以通过直接赋值的方法来增加行。
In [9]: df.loc[3,:]=4 # 增加行
In [10]: df.loc[[1,2],:]=df.loc[[2,1],:].values # 注意一定要带.values
...: df
Out[10]:
a b c
0 1.0 a A
1 3.0 c C
2 2.0 b B
3 4.0 4 4
In [11]: df.drop(0,axis=0,inplace=True) # 删除行
...: df
Out[11]:
a b c
1 3.0 c C
2 2.0 b B
3 4.0 4 4
2. DataFrame对象列操作
DataFrame 对行的操作和对列的操作基本相同,不过要注意的是交换列的方法要使用 .values 来获取数值,否则会失败。示例代码如下。
In [1]: import pandas as pd
In [2]: df = pd.DataFrame({'a': [1, 2, 3], 'b': ['a', 'b', 'c'],'c': ["A","B","C"]})
...: df
Out[2]:
a b c
0 1 a A
1 2 b B
2 3 c C
In [3]: df.loc[:,"a"] # 选择'a'列
Out[3]:
0 1
1 2
2 3
Name: a, dtype: int64
In [4]: df.loc[:,"a":"b"] # 选择多列
Out[4]:
a b
0 1 a
1 2 b
2 3 c
In [5]: df.loc[:,"d"]=4 # 添加列
In [6]: df.loc[:,['b', 'a']] = df.loc[:,['a', 'b']].values # 交换两列的值,注意一定
#使用.values
...: df
Out[6]:
a b c d
0 a 1 A 4
1 b 2 B 4
2 c 3 C 4
In [7]: df.rename(columns={'b':'第二列'}, inplace=True) # 替换指定的列名
...: df
Out[7]:
a 第二列 c d
0 a 1 A 4
1 b 2 B 4
1 b 2 B 4
2 c 3 C 4
In [8]: df.columns = df.columns.map(lambda x:x.upper()) # 全部大写
...: df
Out[8]:
A 第二列 C D
0 a 1 A 4
1 b 2 B 4
2 c 3 C 4
In [9]: del df['A'] # 删除列
...: df
Out[9]:
第二列 C D
0 1 A 4
1 2 B 4
2 3 C 4
最后
以上就是真实发夹为你收集整理的python dataframe取行列_Pandas DataFrame对象行列操作的全部内容,希望文章能够帮你解决python dataframe取行列_Pandas DataFrame对象行列操作所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复