Python数据分析-Pandas

这篇具有很好参考价值的文章主要介绍了Python数据分析-Pandas。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Pandas

个人笔迹,建议不看

import pandas as pd
import numpy as np

Series类型

s=pd.Series([135,np.nan,6,8],index=['a','b','c','d','e'])
print(s) # 默认0-n-1,否则用index数组作行标
s.index
s.value # array()
s['a'] => 1 # 取值 
s[0:3]		# 切片
s[::2] # 其实跟 array 类似,就是输出不一样
# 索引赋值
s.index.name = '索引'
s.index = list('abcdef');
s['a':'c']; # 切片左闭右闭

DataFrame类型

是一个二维结构,类似于一张excel表

1)构造时间序列
date = pd.date_range('20180101',periods=6)
print(date)
2)创建一个DataFrame结构
## 传入二维数组
df = pd.DateFrame(np.random.randn(6,4))
df = pd.DateFrame(np.random.randn(6,4),index = date, columns=list('ABCD'))
## 用字典创建
df2 = pd.DataFrame({'A':1.,'B':pd.Timestamp('20181001'),'C':pd.Series(1,index=list(range(4)),dtype = float),'D':np.array([3]*4,dtype=float),'E':
pd.Categorical(['test','train','test','train']),'F':abc});

DateFrame只要求每列的数据类型相同就可以了

  • 查看数据
df.head() # 默认产生前五行
df.tail(3) 
df2.dtypes # 查看各列的数据类型
## 下标用index属性查看
df.index
df.columns
df.values # 只看值
  • 读取数据及数据操作
# 读取excel,同一目录下
df=pd.read_excel('name.xlsx')
df=pd.read_csv('name.csv')
df=pd.read_excel(r'C:\Users\Administrator\Desktop\name.xlsx') # r 代表不需要转义

  • 行操作
# iloc的参数为具体的数字行列号,loc的参数为设置的index值和列名
df.iloc[0] 看第0行
df.iloc[0:5] # 左闭右开,df.loc[0:4].左闭右闭
## 添加一行
##先定义Series
dit={'名字':'复仇者联盟3','投票人数':123456,'类型':'剧情','产地':'美国',上映时间':'2018-05-04'}
s=pd.Series(dit)
s.name = 38737
df = df.append(s);
df[-5:]# 查看后5行
df[0:2]
## 删除行
df=df.drop([0,1,2])  # 给的是索引
## 查看
df['columnName'] # 显示名字这一列的所有信息
df['columnName'][:5]# 先取系列,后取下标
## 增加字段
df['newCol'] = range(1,len(df)+1)
## 删除列
df = df.drop('序号',axis=1) 
## 通过标签进行数据选择, 先行后列用loc
df.loc[[index],[column]]
df.loc['a','名字']
df.loc[[1,3,5,7,9],['名字','评分']]
  • 条件选择
df['产地'] == '美国' # bool series
df[df['产地'] == '美国'][:5]
## 选取产地为美国并且评分大于9
df[(df.产地=='美国')&(df.评分>9)][:5]
## 产地为美国或中国并且评分大于9
df[((df.产地=='美国')|(df.产地=='中国'))&(df.评分>9)] # 其实是位运算,注意加括号
  • 缺失值及异常值处理
dropna
fillna
isnull
notnull

判断缺失值:

df.isnull()
返回二维bool数组
df['名字'].isnull()
df.col.notnull()
df[df.col.isnull][:5]

填充缺失值:

fillna()	# NaN
df['评分'].fillna(value)

删除缺失值

df.dropna() 
参数:
how = 'all' : 某行某列全为0时删除
inplace = true : 覆盖掉原先的数据,即直接变为新数据
axis=0:选择行或者列

练习

import pandas as pd
data = pd.read_excel('豆瓣电影数据.xlsx')
print(type(data))
<class 'pandas.core.frame.DataFrame'>
data.to_excel(r'C:/Users/xxx/desktop/movie.xlsx')
df = pd.DataFrame({'name':['zs','ls'],'age':[1,2]})
df
df.describe()
#type(df)
age
count 2.000000
mean 1.500000
std 0.707107
min 1.000000
25% 1.250000
50% 1.500000
75% 1.750000
max 2.000000
data.columns
Index(['Unnamed: 0', '名字', '投票人数', '类型', '产地', '上映时间', '时长', '年代', '评分',
       '首映地点'],
      dtype='object')
df = pd.read_excel(r'C:/Users/xxx/desktop/附件.xlsx')
df.drop(['Unnamed: 15','Unnamed: 16'],axis = 1)
df.drop(df.columns[15:22],axis=1,inplace = True)
df.to_excel(r'C:/Users/xxx/desktop/test.xlsx')
df.fillna(df.mean())
编号 母亲年龄 婚姻状况 教育程度 妊娠时间(周数) 分娩方式 CBTS EPDS HADS 婴儿行为特征 婴儿性别 婴儿年龄(月) 整晚睡眠时间(时:分:秒) 睡醒次数 入睡方式
0 1 34 2 5 37.0 1 3 13 9 中等型 1 1 10:00:00 3.000000 2.000000
1 2 33 2 5 42.0 1 0 0 3 安静型 2 3 11:00:00 0.000000 4.000000
2 3 37 2 5 41.0 1 4 8 9 安静型 1 1 12:00:00 1.000000 2.000000
3 4 31 2 5 37.5 1 6 16 13 安静型 2 3 11:00:00 2.000000 1.000000
4 5 36 1 5 40.0 1 1 3 3 中等型 2 3 10:30:00 1.000000 4.000000
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
405 406 31 2 3 39.5 1 1 4 4 NaN 2 2 NaN 1.461538 3.025641
406 407 26 2 2 37.0 1 4 9 14 NaN 2 2 NaN 1.461538 3.025641
407 408 26 2 5 39.0 1 0 3 3 NaN 1 1 NaN 1.461538 3.025641
408 409 27 2 5 41.2 1 0 0 4 NaN 1 1 NaN 1.461538 3.025641
409 410 31 2 5 38.0 1 3 7 7 NaN 2 2 NaN 1.461538 3.025641

410 rows × 15 columns

df[df.婴儿行为特征 == '安静型']
编号 母亲年龄 婚姻状况 教育程度 妊娠时间(周数) 分娩方式 CBTS EPDS HADS 婴儿行为特征 婴儿性别 婴儿年龄(月) 整晚睡眠时间(时:分:秒) 睡醒次数 入睡方式
1 2 33 2 5 42.0 1 0 0 3 安静型 2 3 11:00:00 0.0 4.0
2 3 37 2 5 41.0 1 4 8 9 安静型 1 1 12:00:00 1.0 2.0
3 4 31 2 5 37.5 1 6 16 13 安静型 2 3 11:00:00 2.0 1.0
5 6 32 2 5 41.0 1 1 2 3 安静型 1 1 12:00:00 0.0 4.0
9 10 34 1 3 37.2 1 3 5 10 安静型 1 3 11:00:00 0.0 4.0
... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
377 378 29 2 4 41.0 1 6 7 9 安静型 2 2 11:00:00 1.0 4.0
378 379 41 2 3 39.4 1 10 13 11 安静型 1 1 10:00:00 0.0 4.0
380 381 32 2 5 40.0 1 5 5 3 安静型 1 1 09:00:00 0.0 5.0
387 388 31 2 5 41.6 1 0 3 1 安静型 1 1 10:30:00 2.0 1.0
388 389 27 2 3 40.0 1 1 10 5 安静型 1 1 06:00:00 2.0 1.0

120 rows × 15 columns文章来源地址https://www.toymoban.com/news/detail-696033.html

import numpy as np
d = dict(A = np.array([1,2]),B =np.array([1,2,3,4]))
df1 = pd.DataFrame({'name':['zs','ls'],'age':[1,2]})
df2 = pd.DataFrame({'mane':['ww','ll'],'sex':[0,1]})
pd.concat([df1,df2])
name age mane sex
0 zs 1.0 NaN NaN
1 ls 2.0 NaN NaN
0 NaN NaN ww 0.0
1 NaN NaN ll 1.0
df1 = pd.DataFrame({'name':['zs','ls'],'age':[1,2]})
df2 = pd.DataFrame({'name':['ww','ll'],'age':[0,1]})
df3 = pd.concat([df1,df2])
df3['age+1'] =df3['age'] + 1
df3.dtypes
df3

name age age+1
0 zs 1 2
1 ls 2 3
0 ww 0 1
1 ll 1 2
df2.size # 面积 4 * 3
df.shape
df.var()
# df.discribe()
df.std()
编号          118.501055
母亲年龄          4.362262
婚姻状况          0.359970
教育程度          1.001642
妊娠时间(周数)      1.900777
分娩方式          0.109890
CBTS          4.963365
EPDS          6.757595
HADS          4.259715
婴儿性别          0.500319
婴儿年龄(月)       0.821911
睡醒次数          1.612071
入睡方式          1.408516
dtype: float64

到了这里,关于Python数据分析-Pandas的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python数据分析之Pandas库(一)

    Pandas有两种常用的数据结构: Series (一维数据)与 DataFrame(二维数据)。 Series 是一种类似于 一维数组 的对象,能保存不同数据类型。 DataFrame 是一个 二维的表格型 的数据结构。 1、初始化 使用一位列表初始化Series 2、索引[数据的行标签]、切片 1、初始化 2、查看数据 1、

    2024年02月09日
    浏览(30)
  • 《Python数据分析技术栈》第06章使用 Pandas 准备数据 01 Pandas概览(Pandas at a glance)

    《Python数据分析技术栈》第06章使用 Pandas 准备数据 01 Pandas概览(Pandas at a glance) Wes McKinney developed the Pandas library in 2008. The name (Pandas) comes from the term “Panel Data” used in econometrics for analyzing time-series data. Pandas has many features, listed in the following, that make it a popular tool for data wrang

    2024年01月23日
    浏览(32)
  • Python数据分析之Pandas核心使用进阶

    在Pandas中,有两种常见的方法可以进行DataFrame的行级遍历:使用 iterrows() 和使用 iteritems() 。 使用 iterrows() 方法: iterrows() 方法返回一个迭代器,可以按行遍历DataFrame。每次迭代返回一个包含行索引和该行数据的元组。 输出结果为: 在上面的例子中,我们使用 iterrows() 方法遍

    2024年02月11日
    浏览(59)
  • 《Python数据分析技术栈》第06章使用 Pandas 准备数据 11 pandas中的运算符 Operators in Pandas

    《Python数据分析技术栈》第06章使用 Pandas 准备数据 11 pandas中的运算符 Operators in Pandas Pandas uses the following operators that can be applied to a whole series. While Python would require a loop to iterate through every element in a list or dictionary, Pandas takes advantage of the feature of vectorization implemented in NumPy that

    2024年01月23日
    浏览(34)
  • Python 数据处理与分析之 Pandas 库

    Pandas(Python Data Analysis Library)是一个流行的 Python 第三方库,是数据处理和数据分析中不可或缺的工具之一,用于数据处理和数据分析。 它提供了高效的数据分析方法和灵活且高效的数据结构。相比于其他的数据处理库,pandas更适用于处理具有关系型数据或者带标签数据的情

    2024年02月05日
    浏览(29)
  • 【Python】数据分析+数据挖掘——探索Pandas中的数据筛选

    当涉及数据处理和分析时,Pandas是Python编程语言中最强大、灵活且广泛使用的工具之一。Pandas提供了丰富的功能和方法,使得数据的选择、筛选和处理变得简单而高效。在本博客中,我们将重点介绍Pandas中数据筛选的关键知识点,包括条件索引、逻辑操作符、 query() 方法以及

    2024年02月15日
    浏览(38)
  • 银行营销数据分析---Python(numpy、pandas、matplotlib)

    数据来源:kaggle银行营销数据 工具:Python、Jupyter Notebook 本项目采取的是kaggle银行营销的数据源,主要是预测客户是否会订购银行的产品,但是,这次我将 使用numpy、pandas、matplotlib数据分析三件套,基于源数据,深入分析影响银行三大业务—存款、贷款、营销产品的因素 ,

    2024年02月07日
    浏览(43)
  • Python初学小知识(十四):数据分析处理库Pandas

    来源于这里。 很多情况下用的是pandas而不是numpy,因为前者是在后者的基础上又封装了一些操作,相当于做了函数简化。pandas主要是数据预处理用的比较多。 1.1 读取csv 任意一种格式,只要是以 , 为分隔符,就可以用 read_csv 读取: 先把文件打印出来看看结果: 结果是和表

    2023年04月25日
    浏览(30)
  • 【Python】数据分析+数据挖掘——探索Pandas中的索引与数据组织

    在数据科学和数据分析领域,Pandas是一个备受喜爱的Python库。它提供了丰富的数据结构和灵活的工具,帮助我们高效地处理和分析数据。其中,索引在Pandas中扮演着关键角色,它是一种强大的数据组织和访问机制,使我们能够更好地理解和操作数据。 本博客将探讨Pandas中与索

    2024年02月15日
    浏览(40)
  • python-数据分析-numpy、pandas、matplotlib的常用方法

    输出方式不同 里面包含的元素类型 使用 索引/切片 访问ndarray元素 切片 左闭右开 np.array(list) np.arange() np.random.randn() - - - 服从标准正态分布- - - 数学期望 μ - - - 标准方差 s 使用matplotlib.pyplot模块验证标准正态分布 np.random.randint(起始数,终止数(行,列)) 数据分析 - - - 数据清洗

    2024年02月10日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包