我是靠谱客的博主 真实发夹,最近开发中收集的这篇文章主要介绍python dataframe取行列_Pandas DataFrame对象行列操作,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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对象行列操作所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部