series选取值_pandas中dataFrame的取值和计算操作

dataFrame中的值以矩阵的形式存在,在访问值时需要带上行索引或者列索引。

1、dataFrame简单的取值方法

import pandas as pd

def createDataFrame():

d = {

'a':[1,2,3,4,5],

'b':[6,2,3,6,0],

'c':[4,2,3,6,7],

'd':[5,3,2,4,5],

'e':[6,7,4,5,8]

}

df = pd.DataFrame(d)

#打印出dataFrame

print(df)

if __name__ == '__main__':

createDataFrame()

(1)输出前3行数据

print(df.head(3))

打印结果为:

a b c d e

0 1 6 4 5 6

1 2 2 2 3 7

2 3 3 3 2 4

(2)输出后2行数据:

print(df.tail(2))

打印结果为:

a b c d e

3 4 6 6 4 5

4 5 0 7 5 8

(3)输出第3行数据:

#loc通过标签来选择数据

print(df.loc[2])#这里的2表示行索引

#iloc通过位置来选择数据

print(df.iloc[2])#这里的2表示行位置

#打印结果

a 3

b 3

c 3

d 2

e 4

(4)输出第2列数据

print(df['b'])

#打印输出

0 6

1 2

2 3

3 6

4 0

#从dataFrame里取出的行或列的类型为Series,其可以看做为一个字典,对Series取值:

x = df.iloc[2]

print(x[2])

#打印输出

3

#可以自荐将Series转换为一个list

x = list(df.iloc[2])

(5)查看行名

print(df.index)

打印输出:

RangeIndex(start=0, stop=5, step=1)

(6)查看列名

print(df.columns)

打印输出:

Index(['a', 'b', 'c', 'd', 'e'], dtype='object')

(6)查看所有数据值

print(df.values)

打印输出:

[[1 6 4 5 6]

[2 2 2 3 7]

[3 3 3 2 4]

[4 6 6 4 5]

[5 0 7 5 8]]

(7)查看行列数

print(df.iloc[:,0].size) #行数

print(df.columns.size) #列数

打印输出:

5

5

2、复杂的dataFrame取值操作(对dataFrame中的数据进行筛选)

创建一个dataFrame例子:

import numpy as np

import pandas as pd

def GroupbyDemo():

df = pd.DataFrame({'key1': [1, 2, 1, 2, 1],

'key2': [10, 20, 30, 40, 50],

'data1': np.random.randn(5),

'data2': np.random.randn(5)})

print(df)

if __name__ == '__main__':

GroupbyDemo()

打印结果:

key1 key2 data1 data2

0 1 10 0.510140 -0.272037

1 2 20 1.303937 -0.296393

2 1 30 0.984371 0.005988

3 2 40 -1.257891 -1.089489

4 1 50 0.129426 -1.011806

(1)筛选某列中大于某一值得数据:

print(df[df.key1>1])

打印结果为:

key1 key2 data1 data2

1 2 20 1.006815 -1.191766

3 2 40 0.392499 -0.906492

(2)筛选第一列大于1且第二列大于30的数据

print(df[(df.key1>1) & (df.key2>30)])

打印结果为:

key1 key2 data1 data2

3 2 40 0.681879 0.206709

(3)筛选第一列大于1或第二列大于30的数据

print(df[(df.key1>1) | (df.key2>30)])

打印结果为:

key1 key2 data1 data2

1 2 20 -2.454197 1.091813

3 2 40 0.481552 0.763660

4 1 50 1.639578 0.740787

3、对dataFrame进行函数操作

(1)转置

print(df.T)

输出结果:

0 1 2 3 4

a 1 2 3 4 5

b 6 2 3 6 0

c 4 2 3 6 7

d 5 3 2 4 5

e 6 7 4 5 8

4、删除dataFrame中的某行

(1)删除索引为ac的2行

data.drop(index=list('ac'))

data.drop(index=['a','c'])

(2)删除列名为1,3的2列

data.drop([1,3],axis=1)

5、遍历dataframe

for index, row in df.iterrows():

print(row['Sigma'])

#输出一个值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值