zoukankan      html  css  js  c++  java
  • 5个实用的Pandas技巧

    作者|RAM DEWANI
    编译|VK
    来源|Analytics Vidhya

    介绍

    效率已成为及时完成工作的关键因素。一个人不应该花超过合理的时间去完成事情。尤其是当任务涉及基本编码时。使用Pandas库能节省你的时间。

    Pandas是一个开源包。它有助于用Python语言执行数据分析和数据操作。此外,它还为我们提供了灵活的数据结构。

    目录

    • Pandas技巧1–行的条件选择

    • Pandas技巧2–数据的存储

    • Pandas技巧3–分组数据

    • Pandas技巧4–Pandas map

    • Pandas技巧5–Pandas DataFrame的条件格式化

    Pandas技巧1–行的条件选择

    首先,数据探索是必要步骤。Pandas为进行各种分析提供了一种快速简便的方法。其中一个非常重要的技巧是根据条件选择行或过滤数据。

    行的条件选择可以基于由逻辑运算符分隔的单个语句中的单个条件或多个条件。

    例如,我使用一个关于贷款预测的数据集。

    我们将挑选一排还没有毕业、收入低于5400英镑的客户。让我们看看我们该怎么做。

    视频:https://youtu.be/hc4or_RF5M8

    import pandas as pd
    data = pd.read_csv('../Data/loan_train.csv')
    data.head()
    data2 = data.loc[(data['Education'] == 'Not Graduate') & (data['ApplicantIncome'] <= 5400)]
    data2
    

    注意:记住把每个条件放在括号内。

    Pandas技巧2–数据的存储

    数据可以有两种类型-连续的和离散的,这取决于我们的分析要求。有时我们不需要连续变量中的精确值,但需要它所属的群体。

    例如,你的数据中有一个连续变量,年龄。但你需要一个年龄组来进行分析,比如儿童、青少年、成人、老年人。实际上,Binning非常适合解决我们这里的问题。

    为了执行Binning,我们使用cut()函数。这对于从连续变量到离散变量非常有用。

    视频:https://youtu.be/WQagYXIFjns

    import pandas as pd
    
    df = pd.read_csv('titanic.csv')
    from sklearn.utils import shuffle
    
    # 随机化
    df = shuffle(df, random_state = 42)
    
    df.head()
    
    bins = [0,4,17,65,99]
    labels =['Toddler','Child','Adult','Elderly']
    
    category = pd.cut(df['Age'], bins = bins, labels = labels)
    
    df.insert(2, 'Age Group', category)
    
    df.head()
    
    df['Age Group'].value_counts()
    
    df.isnull().sum()
    

    代码:https://github.com/kunalj101/Data-Science-Hacks/blob/master/Code/binning_data.ipynb

    Pandas技巧3–分组数据

    这种操作在数据科学家和分析师的日常生活中经常执行。Pandas提供了一个基本的函数来执行数据分组,即Groupby。

    Groupby操作包括根据特定条件拆分对象,应用函数,然后组合结果。

    让我们再看一次贷款预测数据集,假设我想看看给来自不同财产领域的人的平均贷款额,比如农村、半城市和城市。花点时间来理解这个问题陈述并思考如何解决它。

    嗯,Pandas的groupby可以非常有效地解决这个问题。首先根据属性区域划分数据。其次,我们将mean()函数应用于每个类别。最后,我们将它们组合在一起,并将其打印为新的数据帧。

    视频:https://youtu.be/fK-6ZlPvZYU

    #导入数据集
    import pandas as pd
    
    df = pd.read_csv('../Data/loan_train.csv')
    df.head()
    
    # 男女平均收入
    df.groupby(['Gender'])[['ApplicantIncome']].mean()
    
    # 平均贷款金额不同的财产地区,如城市,农村
    df.groupby(['Property_Area'])[['LoanAmount']].mean()
    
    # 比较不同教育背景的贷款状况
    df.groupby(['Education'])[['Loan_Status']].count()
    

    代码:https://github.com/kunalj101/Data-Science-Hacks/blob/master/Code/groupby_in_pandas.ipynb

    Pandas技巧4–Pandas map

    map是另一个提供高度灵活性和实际应用的重要操作。

    Pandas map()用于根据输入对应关系将序列中的每个值映射到其他值。实际上,这个输入可以是一个序列、字典,甚至是一个函数。

    让我们举一个有趣的例子。我们有一个虚拟的雇员数据集。此数据集由以下列组成–姓名、年龄、职业、城市。

    现在需要添加另一列,说明相应的状态。你会怎么做?如果数据集的范围是10行,你可以手动执行,但是如果有数千行呢?使用Pandas map会更有利。

    视频:https://youtu.be/XkwQOy5RZWY

    #样本数据
    data = {'name': ['A', 'B', 'C', 'D', 'E'], 
            'age': [22, 26, 33, 44, 50],
            'profession' : ['data engineer', 'data scientist', 'entrepreneur', 'business analyst', 'self-employed'], 
            'city': ['Gurgaon', 'Bangalore', 'Gurgaon', 'Pune', 'New Delhi']}
    
    df = pd.DataFrame(data)
    df
    
    # 城市与州
    map_city_to_states = { 'Gurgaon' : 'Haryana', 
                      'Bangalore' : 'Karnataka', 
                      'Pune' : 'Maharashtra', 
                      'New Delhi' : 'Delhi'}
    
    # 将城市列映射为州
    df['state'] = df['city'].map(map_city_to_states)
    df
    

    代码:https://github.com/kunalj101/Data-Science-Hacks/blob/master/Code/map python.ipynb

    Pandas技巧5–Pandas DataFrame的条件格式化

    这是我最喜欢的Pandas技巧之一。这个技巧让我有能力直观地定位特定条件下的数据。

    可以使用Pandas的style属性将条件格式应用于数据框。事实上,条件格式是根据某种条件对数据帧应用视觉样式的操作。

    虽然Pandas提供了大量的操作,但我将在这里向你展示一个简单的操作。例如,我们有对应于每个销售人员的销售数据。我想查看的是销售价值高于80的。

    视频:https://youtu.be/vuirWysk_BA

    import pandas as pd
    
    data = pd.read_excel("../Data/salesman_performance.xlsx")
    data
    
    data.style
    
    def highlight_green(sales):
        color = 'green' if sales > 80 else 'black'
        return 'color: %s' % color
    
    formatting = data.iloc[:,1:6].style.applymap(highlight_green)
    formatting
    

    代码:https://github.com/kunalj101/Data-Science-Hacks/blob/master/Code/Pandas_conditional_formatting.ipynb

    结尾

    在这篇文章中,我们总结了Pandas的5个技巧。我希望这些技巧能帮助你完成日常的任务,并为你节省很多时间。

    原文链接:https://www.analyticsvidhya.com/blog/2020/07/5-striking-pandas-tips-and-tricks-for-analysts-and-data-scientists/

    欢迎关注磐创AI博客站:
    http://panchuang.net/

    sklearn机器学习中文官方文档:
    http://sklearn123.com/

    欢迎关注磐创博客资源汇总站:
    http://docs.panchuang.net/

  • 相关阅读:
    Spring中文文档
    学装饰器之前必须要了解的四点
    三元运算符
    functools 中的 reduce 函数基本写法
    filter 函数基本写法
    map 函数基本写法
    迭代器和可迭代对象区别
    斐波那契数列进一步讨论性能
    无论传入什么数据都转换为列表
    将每一个分隔开的字符的首字母大写
  • 原文地址:https://www.cnblogs.com/panchuangai/p/13491448.html
Copyright © 2011-2022 走看看