python dataframe 取一列中的前3个字符_Python编程快速上手之global 语句,不懂还不来看?...

本文介绍了Python数据分析库pandas的基础知识,包括pandas是什么、如何创建和操作DataFrame、数据选择、设定值、处理缺失值、数据读取与保存、DataFrame的合并以及plot绘图。通过实例展示了如何选取和处理数据,以及如何进行数据合并和可视化。
摘要由CSDN通过智能技术生成

前言

本系列博文为利用 Python 进行数据分析相关工具包的学习,主要包含NumPy、pandas和matplotlib.


一、pandas是什么?

NumPy 是将矩阵序列化,使用NumPy中避免了使用循环语句以达到某些计算目的。相比于NumPy,pandas则更像是“字典型的NumPy”,因为在pandas中我们可以给矩阵的行和列进行不同的命名。
总体来说,pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的,二者相互搭配使用。

二、pandas基本介绍

首先先引入pandas工具包,代码如下:

import numpy as npimport pandas as pd12

2.1 创建pandas序列

s = pd.Series([1, 2, 3, 6, np.nan, 4])      #注意这里的Serious首字母要大写s# 0    1.0# 1    2.0# 2    3.0# 3    6.0# 4    NaN# 5    4.0# dtype: float64123456789

上述代码中的np.nan为空值。注意在输入值的前侧有0-5的index,这有点像NumPy中的一维数据的索引。而dtype: float64则表示输入的数字格式为64位浮点型数值。
注:不同于NumPy中有int、float多种数值类型,Series中只有float一种数值类型。

2.2 创建DataFrame

矩阵在pandas中被称为DataFrame。首先需要定义一个date来作为描述其行的索引,如果不指定索引,则默认索引为0,1,2,…

dates = pd.date_range('20160101', periods=6)dates# DatetimeIndex(['2016-01-01', '2016-01-02', '2016-01-03', '2016-01-04',#                '2016-01-05', '2016-01-06'],#               dtype='datetime64[ns]', freq='D')12345

注意这里的dtype是日期(datatime[64])。

df = pd.(np.random.randn(6, 4), index=dates, columns=['a', 'b', 'c', 'd'])df#                      a        b        c        d# 2016-01-010.765527-0.681561-1.078267-1.464479# 2016-01-02-1.0227561.3137070.158951-0.261652# 2016-01-03-0.0164200.4635521.9246331.851053# 2016-01-04-0.797636-1.285860-0.6918401.170988# 2016-01-050.306082-0.2425420.1665301.747711# 2016-01-06-0.1865620.9590310.1100470.666948123456789

上述代码生成的DateFrame类似于NumPy中的矩阵,其中数据是使用NumPy中随机抽样所得,行索引(index)为之前定义的日期,列索引(columns)为[‘a’, ‘b’, ‘c’, ‘d’].
下面看一些不指定行索引和列索引情况下的输入。

df1 = pd.DataFrame(np.random.randn(12).reshape(3, -1))df1#          0        1        2         3# 0    1.623124-0.059781-0.5459611.278110# 1    0.535882-0.0122191.4292411.283243# 2   -0.5585770.288868-1.3809401.057342123456

这里的行列索引为默认的0,1,2,3.

2.3 DataFrame的基本属性

3.1 属性dtypes

dtypes表示DataFrame中每一列的数值属性

df1.dtypes# 0    float64# 1    float64# 2    float64# 3    float64# dtype: object123456

3.2 索引

输出DataFrame中所有的索引。

df1.index         # 输出所有行标签# RangeIndex(start=0, stop=3, step=1)df1.columns         # 输出所有列标签# RangeIndex(start=0, stop=4, step=1)1234

3.3 数值

输出所有数值(values)

df1.values# array([[ 1.62312401, -0.05978129, -0.54596109,  1.2781104 ],#        [ 0.53588153, -0.01221874,  1.42924132,  1.28324285],#        [-0.5585765 ,  0.28886821, -1.38094041,  1.05734184]])1234

3.4 描述

这里用describe()计算出一些统计量来描述每一列的一些信息。这里要注意describe()只针对数值类型的列进行计算,例如字符串类的列跳过不做分析。

df1.describe()#              0       1       2       3# count3.0000003.0000003.0000003.000000       #数据个数# mean0.5334760.072289-0.1658871.206232       #数据均值# std1.0908520.1890641.4431290.128968       #数据标准差# min-0.558577-0.059781-1.3809401.057342# 25%-0.011347-0.036000-0.9634511.167726# 50%0.535882-0.012219-0.5459611.278110# 75%1.0795030.1383250.4416401.280677# max1.6231240.2888681.4292411.28324312345678910

3.5 转置

df1.T#          0       1        2# 01.6231240.535882-0.558577# 1-0.059781-0.0122190.288868# 2-0.5459611.429241-1.380940# 31.2781101.2832431.057342123456

3.6 排序

df1.sort_index(axis=1, ascending=False)   1

上述代码中是根据列(index=1表示列,取0时表示行)名称进行排序,同时可以对ascending赋值True或False来确定是正向排序还是倒序。
不仅仅可以对行列索引进行排序,也可以对其中某个列的取值进行排序。

df1.sort_values(by=2)     # 根据列索引为2的列中的值进行从小到大(默认)进行排序1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值