pandas loc 正则匹配_数据分析—Pandas 的两种数据结构

【导语】想要学习用python做数据分析,当然少不了pandas,pandas 是用来清洗和加工数据的一个工具包,它能够方便灵活的处理大型数据集。

94a3694beef4fce49e2f04159848bbe8.png

pandas主要用于处理非数值数据,numpy用来处理数值数据

Pandas的两种数据结构
一、series 一维的数组型对象,一列,它包含了值和标签
1、创建:可以通过列表、字典、数组
# 导入包import pandas as pdimport numpy as np
# 使用列表生成一个series
obj = pd.Series([4, 7, -5, 3])
print(obj)
print(obj.values)
print(obj.index)

d4a5624670d26b30007ed32253e6bcd1.png

# 使用数组生成一个Series
s2 = pd.Series(np.arange(7))

print(s2)

818fb4a9731adc2f8ed5e6ed55e1a7b7.png

# 使用一个字典生成Series,其中字典的键,就是索引
s3 = pd.Series({'1':1, '2':2, '3':3})
print(s3)
print(s3.values)
print(s3.index)

155988e79ec9970c26f28bd63a069872.png

2、索引:默认是从0开始,下面修改索引
obj2 = pd.Series([4, 7, -5, 3], index=['d', 'b', 'a', 'c'])
print(obj2)
print(obj2['a'])

d6a89f4c858d2263e908cb6707f21e48.png

3、取值:根据行索引取值

# 取一个值

obj2['a']

a17fb386836fbbafa24984bcb203c29f.png

# 取多个值

obj2[['a','c']]

caf8aba4aec49679b35ea692db659008.png

# 取连续值

obj2['a':'c']

9f1e21c5bbd44dfcb5d315aaf1452516.png

# 按条件取值

obj2[obj2 > 0]

c2d1be35a0da4a00612a4d4b70267e58.png

4、常用属性和方法
print('e' in obj2)
print('b' in obj2)

a59fa550f1900662eacba66cebfe9d9a.png

sdata = {'Ohio': 35000, 'Texas': 71000, 'Oregon': 16000, 'Utah': 5000}
obj3 = pd.Series(sdata)
obj3

1cd326b23aaf06dc31a7036130a9d253.png

states = ['California', 'Ohio', 'Oregon', 'Texas']

obj4 = pd.Series(sdata, index=states) # 自动与dict的key匹配obj4

obj4

57158b608e5a3f6b3669c1f8c7c741ac.png

print(pd.isnull(obj4))
print(pd.notnull(obj4))

5ba000032ce330b9f7f0686c4e65fe3a.png

print(obj3 + obj4) # 数据自动对齐

7a5485fccc45bfc2608bde38df94ab3a.png

二、DataFrame 二维, 多行多列,包含了行索引、列索引

1、 创建
data frame = pd.

b44355f7de3c6f0023eb830505f4f666.png

2、 索引  有index行索引 和 columns列索引
frame = pd.DataFrame(data, columns=['year', 'state', 'pop']) # 指定列顺序frame

f66a3d3c824cfd6d264ce47acc4ac245.png

frame2 = pd.DataFrame(data,                  
columns=['year', 'state', 'pop', 'debt'],

index=['one', 'two', 'three', 'four', 'five']) # 分别指定行列名字,缺失值自动填充,比如debt列。

frame2

164f4245a9e98087041d3675449fa462.png

3、取值

①普通取值

# 通过索引返回指定列,返回类型为Series

print(frame2['state'])

print(frame2.year)
print(type(frame.state))

efacdc1d185c47848a7def560f18c136.png

②loc[] 是对自定义行、列索引进行取值

# loc[] 第一个参数是行索引 第二个参数是列索引

df = pd.DataFrame([[1,2,3,4,5],[2,3,4,5,6]],['a','b'],['A','B','C','D','E'])

df

d092fb255e485265cb9286673ec164e3.png

# 取单个值

df.loc['a','B']

850c9bc31c0a3423edfedbc24af28401.png

# 取多个值

df.loc[['a','b'],'D']

33cd330555e27e7debedbd7e8265b007.png

# 取多个连续值 不遵循左开右闭 直接取值

df.loc[['a','b'],['D','E']]

1e742a7aa211cefef445f4dd3a19c55c.png

③iloc[] 对默认的行、列索引的数据进行取值

df = pd.DataFrame([[1,2,3,4,5],[2,3,4,5,6]])

df

df = pd.DataFrame([[1,2,3,4,5],[2,3,4,5,6]],['a','b'],['A','B','C','D','E'])

df

print('C' in df.columns)

print(3 in df.index)

636ed361e908b1850c68c73e9339e90d.png

# 取单个值

df.iloc[0,3]

2b65b6def585c6aaebba94025cdde227.png

# 取多个值

df.iloc[[0,1],3]

1f08b4148477c3753fd34f70f95ec7f8.png

# 取连续值 遵循左开右闭

df.iloc[0:1,0:4]

331cb6882b7425cb511b4b5eeb527d6d.png

4、常用属性和方法

df = pd.DataFrame([[1,2,3,4,5],[2,3,4,5,6]],['a','b'],['A','B','C','D','E'])

df

print('C' in df.columns)

print(3 in df.index)

338fd7bb1d7150a36498b5d58244c7dc.png

查看列类型: df.dtypes
查看行数列数:df.shape
查看列索引:df.colums
查看行索引:df.index
查看各个字段的记录数:df.count()
查看前五条数据:df.head()
查看最后五条数据:df.tail()
查看数据维度:df.ndim
查看数据对象值,二维数组:df.values
查看相关信息概览(行数,列数,列索引,列非空值个数,列类型,内存占用):df.info()
快速综合统计结果(计数,均值,保准值,最大值,四分位数,最小值):df.describe()
重命名,并覆盖原名:df.rename({'原名':'新名',inplace = true})
查看每列是否有空值:df.isnull().any()

希望本文的内容对大家的学习或者工作能带来一定的帮助,每天进步一点点,加油

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值