精华内容
下载资源
问答
  • Pandas应用

    2019-02-27 14:46:33
    什么是PandasPandas 是基于 NumPy 的一个开源 Python 库,它被广泛用于快速分析数据,以及数据清洗和准备等工作。它的名字来源是由“ Panel data”(面板数据,一个计量经济学名词)两个单词拼成的。简单地说,你...

    什么是Pandas?

    Pandas 是基于 NumPy 的一个开源 Python 库,它被广泛用于快速分析数据,以及数据清洗和准备等工作。它的名字来源是由“ Panel data”(面板数据,一个计量经济学名词)两个单词拼成的。简单地说,你可以把 Pandas 看作是 Python 版的 Excel。
    在这里插入图片描述

    常见的数据类型

    1)Series:一维数组,与Numpy中的一维array类似。二者与Python基本的数据结构List也很相近。Series如今能保存不同种数据类型,字符串、boolean值、数字等都能保存在Series中。
    2)Time- Series:以时间为索引的Series。
    3)DataFrame:二维的表格型数据结构。很多功能与R中的data.frame类似。可以将DataFrame理解为Series的容器。
    4)Panel :三维的数组,可以理解为DataFrame的容器。
    Panel 4D:四维…
    Panel 5D: 五维

    Panel nD: n维

    安装Pandas

    如果你已经安装了 Anaconda,你可以很方便地在终端或者命令提示符里输入命令安装 Pandas:

    conda install pandas
    

    如果你还没安装 Anaconda,你也可以用 Python 自带的包管理工具 pip 来安装:

    pip install pandas
    

    查看所安装Pandas的版本信息:

    import pandas as pd
    print(pd.__version__)
    

    在这里插入图片描述

    创建一个Series对象

    import pandas as pd
    import numpy as np
    import string
    from matplotlib import pyplot as plt
    
    

    1)通过列表创建Series对象:(如果不指定索引, 默认从0开始)

    array = ["粉条", "粉丝", "粉带"]
    s1 = pd.Series(data=array)
    print(s1)
    

    在这里插入图片描述
    2). 通过numpy的对象Ndarray创建Series:

    n = np.random.randn(5)   # 随机创建一个ndarray对象;
    s2 = pd.Series(data=n)
    print(s2)
    

    在这里插入图片描述

    n = np.random.randn(5)   # 随机创建一个ndarray对象;
    s2 = pd.Series(data=n)
    # 修改元素的数据类型;
    ss2 = s2.astype(np.int)
    print(ss2)
    

    在这里插入图片描述
    3). 通过字典创建Series对象:

    dict = {string.ascii_lowercase[i]:i for i in range(10)}
    s3 = pd.Series(dict)
    print(s3)
    
    

    在这里插入图片描述

    Series的基本操作

    import pandas as pd
    import numpy as np
    import  string
    array = ["粉条", "粉丝", "粉带"]
    s1 = pd.Series(data=array)
    print(s1)
    

    在这里插入图片描述
    1). 修改Series索引

    print(s1.index)
    s1.index = ['A', 'B', 'C']
    print(s1)
    

    在这里插入图片描述
    2). Series纵向拼接;

    array = ["粉条", "粉丝", "粉带"]
     如果不指定索引, 默认从0开始;
    s2 = pd.Series(data=array)
    s3 = s1.append(s2)
    print(s3)
    
    

    **3). 删除指定索引对应的元素;**
    3). 删除指定索引对应的元素;

    s1.index = ['A', 'B', 'C']
    # array = ["粉条", "粉丝", "粉带"]
    s2 = pd.Series(data=array)
    s3 = s1.append(s2)
    s3 = s3.drop('C')  #bbbbbbbbbb 删除索引为‘C’对应的值;
    print(s3)
    

    在这里插入图片描述
    4). 根据指定的索引查找元素

    print(s3['B'])
    s3['B'] = np.nan
    print(s3)
    
    

    在这里插入图片描述
    5). 切片操作 — 同列表

    print(s3[:2])
    print(s3[::-1])
    print(s3[-2:])  # 显示最后两个元素
    

    在这里插入图片描述

    Series运算

    import pandas as pd
    import numpy as np
    import  string
    
    s1  = pd.Series(np.arange(5), index=list(string.ascii_lowercase[:5]))
    s2  = pd.Series(np.arange(2, 8), index=list(string.ascii_lowercase[2:8]))
    
    print(s1)
    print(s2)
    
    

    在这里插入图片描述
    注意:
    按照对应的索引进行计算, 如果索引不同,则填充为Nan。

    1)加法

    print(s1 + s2)
    print(s1.add(s2))
    

    在这里插入图片描述
    2)减法

    print(s1 - s2)
    print(s1.sub(s2))
    

    在这里插入图片描述
    3)乘法

    print(s1 * s2)
    print(s1.mul(s2))
    

    在这里插入图片描述
    4)除法

    print(s1 / s2)
    print(s1.div(s2))
    

    在这里插入图片描述
    5)中位数

    print(s1)
    print(s1.median())
    

    在这里插入图片描述

    6)求和

    print(s1.sum())
    

    在这里插入图片描述

    7)最大值

    print(s1.max())
    
    

    在这里插入图片描述

    8)最小值

    print(s1.min())
    
    

    在这里插入图片描述

    Series特殊的where方法

    
    import pandas as pd
    import numpy as np
    import string
    
    # &**********series中的where方法运行结果和numpy中完全不同;
    s1 = pd.Series(np.arange(5), index=list(string.ascii_lowercase[:5]))
    print(s1.where(s1 > 3))
    
    # 对象中不大于3的元素赋值为10;
    print(s1.where(s1 > 3, 10))
    
    **# 对象中大于3的元素赋值为10;**
    print(s1.mask(s1 > 3, 10))
    

    在这里插入图片描述

    创建DataFrame数据类型

    import pandas as pd
    import numpy as np
    from matplotlib import pyplot as plt
    
    

    方法1: 通过列表创建

    li = [
        [1, 2, 3, 4],
        [2, 3, 4, 5]
    ]
    
    # DataFRame对象里面包含两个索引, 行索引(0轴, axis=0), 列索引(1轴, axis=1)
    d1 = pd.DataFrame(data=li, index=['A', 'B'], columns=['views', 'loves', 'comments', 'tranfers'])
    # print(d1)
    

    在这里插入图片描述
    方法2: 通过numpy对象创建

    narr = np.arange(8).reshape(2, 4)
    # DataFRame对象里面包含两个索引, 行索引(0轴, axis=0), 列索引(1轴, axis=1)
    d2 = pd.DataFrame(data=narr, index=['A', 'B'], columns=['views', 'loves', 'comments', 'tranfers'])
    print(d2)
    

    在这里插入图片描述
    方法三: 通过字典的方式创建

    dict = {
        'views': [1, 2, ],
        'loves': [2, 3, ],
        'comments': [3, 4, ]
    
    }
    d3 = pd.DataFrame(data=dict, index=['粉条', "粉丝"])
    print(d3)
    

    在这里插入图片描述
    日期操作的特例:

    pd.date_range()
    dates = pd.date_range(start='1/1/2018', end='1/08/2018')
    print(dates)
    
    

    行索引

    dates = pd.date_range(start='today', periods=6)
    

    数据

    data_arr = np.random.randn(6, 4)
    

    列索引

    columns = ['A', 'B', 'C', 'D']
    d4 = pd.DataFrame(data_arr, index=dates, columns=columns)
    print(d4)
    

    在这里插入图片描述
    一维对象: 建立一个以2019年每一天作为索引, 值为随机数;

    dates = pd.date_range(start='1/1/2019', end='12/31/2019', freq='D')
    datas = np.random.randn(len(dates))
    s1 = pd.Series(datas, index=dates)
    print(s1[:3])
    
    

    在这里插入图片描述

    从文件中读取数据

    import pandas as pd
    import numpy as np
    from matplotlib import pyplot as plt
    

    1). csv文件的写入

    df = pd.DataFrame(
        {'province': ['陕西', '陕西', '四川', '四川', '陕西'],
         'city': ['咸阳', '宝鸡', '成都', '成都', '宝鸡'],
         'count1': [1, 2, 3, 4, 5],
         'count2': [1, 2, 33, 4, 5]
         }
    )
    
    df.to_csv('doc/csvFile.csv')
    print("csv文件保存成功")
    
    

    在这里插入图片描述
    在这里插入图片描述

    2). csv文件的读取

    df2 = pd.read_csv('doc/csvFile.csv')
    print(df2)
    
    

    在这里插入图片描述

    3). excel文件的写入

    df2.to_excel("/tmp/excelFile.xlsx", sheet_name="省份统计")
    print("excel文件保存成功")
    
    

    在这里插入图片描述
    在这里插入图片描述

    分组与聚合之group_by

    pandas提供了一个灵活高效的groupby功能,
    1). 它使你能以一种自然的方式对数据集进行切片、切块、摘要等操作。
    2). 根据一个或多个键(可以是函数、数组或DataFrame列>名)拆分pandas对象。
    3). 计算分组摘要统计,如计数、平均值、标准差,或用户自定义函数。

    import pandas as pd
    import numpy as np
    from matplotlib import pyplot as plt
    
    df = pd.DataFrame(
        {'province': ['陕西', '陕西', '四川', '四川', '陕西'],
         'city': ['咸阳', '宝鸡', '成都', '成都', '宝鸡'],
         'count1': [1, 2, 3, 4, 5],
         'count2': [1, 2, 33, 4, 5]
         }
    )
    
    

    在这里插入图片描述
    1)根据某一列的key值进行统计分析;

    grouped = df['count1'].groupby(df['province'])
    print(grouped.describe())
    print(grouped.median())
    
    

    在这里插入图片描述
    2)根据城市统计分析cpunt1的信息;

    grouped = df['count1'].groupby(df['city'])
    print(grouped.max())
    

    在这里插入图片描述
    3)指定多个key值进行分类聚合

    grouped = df['count1'].groupby([df['province'], df['city']])
    print(grouped)
    print(grouped.max())
    print(grouped.sum())
    print(grouped.count())
    
    

    在这里插入图片描述
    4)通过unstack方法, 实现层次化的索引;

     print(grouped.max().unstack())
    

    在这里插入图片描述

    字符串操作

    import pandas as pd
    import numpy as np
    from matplotlib import pyplot as plt
    
    
    
    series1= pd.Series(['$A:1', '$B:2', '$C:3', np.nan, '$cat:3'])
    print(series1)
    

    在这里插入图片描述
    1)将所有的字母转换为小写字母, 除了缺失值

    print(series1.str.lower())
    

    在这里插入图片描述
    2) 将所有的字母转换为大写字母, 除了缺失值

    print(series1.str.upper())
    

    在这里插入图片描述
    3)分离

    print(series1.str.split(":"))
    
    

    在这里插入图片描述

    4)去掉左右两端的某个字符

    print(series1.str.strip('$'))
    

    在这里插入图片描述

    展开全文
  • pandas 应用记录

    2020-04-16 08:15:33
    pandas_df.index = range(1, len(pandas_df) + 1) # set index from 1 pandas_index = pandas_df.index # 将dataframe的索引赋给一个变量 pandas_df.insert(0, 'index', pandas_index) # 第一个参数是列插入的位置 ...

     

    插入值

    pandas_df.index = range(1, len(pandas_df) + 1)  # set index from 1
    pandas_index = pandas_df.index    # 将dataframe的索引赋给一个变量
    pandas_df.insert(0, 'index', pandas_index)   # 第一个参数是列插入的位置
     

    展开全文
  • pip与pandas应用

    2019-10-08 20:47:10
    1.一个环境既有anconda,又有Python,在cmd环境进行pip升级,成功后,再应用最新版本pip(19.2.3)进行下载pandas,却显示下载失败,原因是pip版本低,最后发现是anconda的pip版本低,导致cmd应用pip下载pandas失败...

    1.一个环境既有anconda,又有Python,在cmd环境进行pip升级,成功后,再应用最新版本pip(19.2.3)进行下载pandas,却显示下载失败,原因是pip版本低,最后发现是anconda的pip版本低,导致cmd应用pip下载pandas失败,最后将anconda的pip进行升级后成功实现对pandas下载,升级指令:python -m pip install --upgrade pip
    2.应用pandas时候,一定注意不可以将.py的名称起为pandas.py,会导致对pandas包识别错误
    3.pandas读取Excel的文件名称不能存在俩个.,否则无法读取Excel

    展开全文
  • import pandas as pd
  • python pandas 应用系列

    2016-10-03 15:57:09
    pandas 是基于 Numpy 构建的含有更高级数据结构和工具的数据分析包 pandas 是围绕着 Series 和 DataFrame 两个核心数据结构展开的  一、导入相关包: import numpy as np import pandas as pd import matplotlib...

    pandas 是基于 Numpy 构建的含有更高级数据结构和工具的数据分析包

    pandas 是围绕着 Series 和 DataFrame 两个核心数据结构展开的 

    一、导入相关包:

    import numpy as np 
    import pandas as pd 
    import matplotlib.pyplot as plt
    from pandas import Series,DataFrame

    二、创建对象:

    (一)

    import numpy as np 
    import pandas as pd 
    import matplotlib.pyplot as plt
    from pandas import Series,DataFrame
    s = Series([1,3,5,7])
    print s
    可以传递一个list进入Serise , 默认创建整形,并且创建的时候会返回一个dtype:在这里就是int64

    PS:如果list中有其他的数据类型,则会返回 object类型(多种数据类型;


    (二)

    Series允许传递index(左侧下标) 和 value (右侧下标),这里就和字典一样,不过value的表达是data

    import numpy as np 
    import pandas as pd 
    import matplotlib.pyplot as plt
    from pandas import Series,DataFrame
    s = Series(index = ['a','b','c'] , data= [1,3,5])
    print s

    并且可以使用 s.index 和 s.values 来查询 , 这里是一一对应关系,但是又是相互独立的narray。

    PS:Serise 还有name 属性, 可以定义 s.name 和 s.index.name , eg ---> s.name = 'a_series'


    (三)

    DataFrame是一个表格型的数据结构,它含有一组有序的列(类似于 index),每列可以是不同的值类型(不像 ndarray 只能有一个 dtype)。

    基本上可以把 DataFrame 看成是共享同一个 index 的 Series 的集合。

    DataFrame 的构造方法与 Series 类似,只不过可以同时接受多条一维数据源,每一条都会成为单独的一列:

    import numpy as np   
    import pandas as pd   
    import matplotlib.pyplot as plt  
    from pandas import Series,DataFrame 
    data = {'state':['china','china','china','japan','japan'] , 'year':['2012','2012','2013','2014','2015'],'pop':['1.5','1.6','1.7','1.8','1.9']}
    df = DataFrame(data)


    并且对于上述操作:

    DataFrame(data=None,index=None,coloumns=None),coloumns就是name , 并且index可以修改左侧顺序的名称。

    cloumns可以修改上面name的先后顺序,并且让权值对齐;

    df = DataFrame(data,index = ['one','two','three','four','five'],columns=['year','pop','state','love'])


    并且如果想提取出某一列的话,就对其进行如同C语言结构体的操作即可, 

    df.state


    展开全文
  • pandas应用——读excel和DataFrame转字典

    万次阅读 2018-01-24 18:46:11
    1.读excel表的方法:read_excel() 重要参数 sheetname:选择要读的sheet ...import pandas as pd df = pd.read_excel('excel_file.xlsx', sheetname='sheet1', index_col='col_1') 2.DataFram
  • Python基础篇—Pandas应用(一)

    万次阅读 2016-08-23 20:39:13
    下面结合一个具体案例进一步了解pandas应用。参考文章pandas-cookbook GitHub repository 在此,我们将利用一个新的数据集来演示如何用pandas处理更大的数据集。通过分析该数据集,找到最常见的投诉类型(数据可在...
  • import pandas as pddf = pd.read_csv( )# 默认显示列表数据的前5行df.head( )
  • Python基础篇—Pandas应用(三)

    千次阅读 2016-10-31 20:43:43
    import pandas as pd data = pd.read_csv('data.txt') data 添加总和栏显示wid、uid、fans的总和: data['total'] = data['wid']+data1['uid']+data1['fans'] data 对各列进行汇总: data['fans'].sum() data['fans'...
  • pandas应用—— Dataframe的属性们

    千次阅读 2018-02-05 11:01:31
    Dataframe包含的书友属性如下: 先通过一个dict生成dataframe:N = 5 tmp_dict = dict() sum = 0 for i in range(N): n_sum = 'sum_' + str(i) sum += i tmp_dict[n_sum] = set() tmp_dict[n_sum].add(sum) ...
  • Python基础篇—Pandas应用(二)

    千次阅读 2016-09-08 15:39:47
    好的!接下来我们将利用骑行路线的数据集!我住在Montreal,加拿大东南部港市,我比较好奇这座城市的人们喜欢...%matplotlib inlineimport pandas as pd import matplotlib.pyplot as pltpd.set_option('display.mpl_
  • Pandas主要统计特征函数 计算出前n项和: D=pd.Series(range(0,20)) D.cumsum() 0 0 1 1 2 3 3 6 .... 19 190 dtype: int64 rolling滚动计算函数 rolling_系列是pandas的函数,不是DataFr...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 50,192
精华内容 20,076
关键字:

pandas应用