Python中的数据处理

Python中的数据处理

数据整理是一个收集、整理和将原始数据转化为另一种格式的过程,以便在更短的时间内更好地理解、决策、访问和分析。数据整理也被称为 “数据清洗”。

Python中的数据处理

数据整理的重要性

数据整理是一个非常重要的步骤。下面的例子将解释其重要性。

图书销售网站希望根据用户的喜好,显示不同领域的畅销书。例如,一个新用户搜索励志书籍,那么他们希望显示那些卖得最多的励志书籍或有高评价的书籍,等等。

但在他们的网站上,有大量来自不同用户的原始数据。这里使用的是数据整合或数据整理的概念。正如我们所知,数据不是由系统来处理的。这个过程是由数据科学家完成的。因此,数据科学家将以这样的方式处理数据,他们将对销售量较大或评价较高的励志书籍进行分类,或用户购买这本书与这些书籍包,等等。在此基础上,新用户会做出选择。这将解释数据整理的重要性。

Python中的数据处理

数据整理是数据科学和数据分析的一个重要课题。Python的Pandas框架被用于数据整理。Pandas是一个专门为数据分析和数据科学开发的开源库。像数据排序或过滤、数据分组等过程。

python中的数据处理涉及以下功能。

  1. 数据探索。在这个过程中,通过对数据的可视化表示,对数据进行研究、分析和理解。
  2. 处理缺失值。大多数拥有大量数据的数据集都包含缺失值NaN,需要通过用平均数、模式、列的最频繁值来代替它们,或者干脆放弃有NaN值的行来照顾它们。
  3. 重塑数据。在这个过程中,根据要求对数据进行处理,其中可以添加新的数据或修改预先存在的数据。
  4. 过滤数据。有些时候,数据集是由不需要的行或列组成的,这些行或列需要被删除或过滤。
  5. 其他。在用上述功能处理完原始数据集后,我们可以根据我们的要求得到一个有效的数据集,然后它可以被用于所需的目的,如数据分析、机器学习、数据可视化、模型训练等。

下面是一个在原始数据集上实现上述功能的例子

  • 数据探索 ,在这里我们分配数据,然后以表格的形式将数据可视化。
# Import pandas package
import pandas as pd
 
# Assign data
data = {'Name': ['Jai', 'Princi', 'Gaurav',
                 'Anuj', 'Ravi', 'Natasha', 'Riya'],
        'Age': [17, 17, 18, 17, 18, 17, 17],
        'Gender': ['M', 'F', 'M', 'M', 'M', 'F', 'F'],
        'Marks': [90, 76, 'NaN', 74, 65, 'NaN', 71]}
 
# Convert into DataFrame
df = pd.DataFrame(data)
 
# Display data
df

输出:

Python中的数据处理

  • 在处理缺失值时,我们可以从前面的输出中看到,在MARKS列中存在NaN值,这些值将通过用列的平均值代替来处理。
# Compute average
c = avg = 0
for ele in df['Marks']:
    if str(ele).isnumeric():
        c += 1
        avg += ele
avg /= c
 
# Replace missing values
df = df.replace(to_replace="NaN",
                value=avg)
 
# Display data
df

输出:

Python中的数据处理

  • 重塑数据 ,在GENDER列中,我们可以通过将其归类为不同的数字来重塑数据。
# Categorize gender
df['Gender'] = df['Gender'].map({'M': 0,
                                 'F': 1, }).astype(float)
 
# Display data
df

输出:

Python中的数据处理

  • 筛选数据,假设有一个要求,即关于最高分学生的姓名、性别、分数的详细信息。这里我们需要删除一些不需要的数据。
# Filter top scoring students
df = df[df['Marks'] >= 75]
 
# Remove age row
df = df.drop(['Age'], axis=1)
 
# Display data
df

输出:

Python中的数据处理

因此,我们最终获得了一个有效的数据集,可以进一步用于各种目的。

现在我们知道了数据整理的基本知识。下面我们将讨论各种操作,使用这些操作我们可以执行数据整理。

使用合并操作来处理数据

合并操作是用来合并原始数据,并入所需的格式。

语法:

pd.merge( data_frame1,data_frame2, on="field ") 

这里的字段是列的名称,在两个数据框中都是类似的。

比如说。假设一位教师有两类数据,第一类数据包括学生的详细资料,第二类数据包括从账户办公室获取的待付费用状态。因此,教师将在这里使用合并操作,以合并数据并提供其意义。这样,教师就可以很容易地进行分析,同时也减少了教师手动合并的时间和精力。

第一类数据:

# import module
import pandas as pd   
 
# creating DataFrame for Student Details
details = pd.DataFrame({
    'ID': [101, 102, 103, 104, 105, 106,
           107, 108, 109, 110],
    'NAME': ['Jagroop', 'Praveen', 'Harjot',
             'Pooja', 'Rahul', 'Nikita',
             'Saurabh', 'Ayush', 'Dolly', "Mohit"],
    'BRANCH': ['CSE', 'CSE', 'CSE', 'CSE', 'CSE',
               'CSE', 'CSE', 'CSE', 'CSE', 'CSE']})
 
# printing details
print(details)

输出:

Python中的数据处理

第二种类型的数据

# Import module
import pandas as pd
 
# Creating Dataframe for Fees_Status
fees_status = pd.DataFrame(
    {'ID': [101, 102, 103, 104, 105,
            106, 107, 108, 109, 110],
     'PENDING': ['5000', '250', 'NIL',
                 '9000', '15000', 'NIL',
                 '4500', '1800', '250', 'NIL']})
 
# Printing fees_status
print(fees_status)

输出:

Python中的数据处理

使用合并操作对数据进行整理:

# Import module
import pandas as pd
 
# Creating Dataframe
details = pd.DataFrame({
    'ID': [101, 102, 103, 104, 105,
           106, 107, 108, 109, 110],
    'NAME': ['Jagroop', 'Praveen', 'Harjot',
             'Pooja', 'Rahul', 'Nikita',
             'Saurabh', 'Ayush', 'Dolly', "Mohit"],
    'BRANCH': ['CSE', 'CSE', 'CSE', 'CSE', 'CSE',
               'CSE', 'CSE', 'CSE', 'CSE', 'CSE']})
 
# Creating Dataframe
fees_status = pd.DataFrame(
    {'ID': [101, 102, 103, 104, 105,
            106, 107, 108, 109, 110],
     'PENDING': ['5000', '250', 'NIL',
                 '9000', '15000', 'NIL',
                 '4500', '1800', '250', 'NIL']})
 
# Merging Dataframe
print(pd.merge(details, fees_status, on='ID'))

输出:

Python中的数据处理

使用分组方法整理数据

数据分析中的分组方法是用来提供从大数据中取出的各种分组的结果。pandas的这种方法被用来对大数据集中的数据进行分组。

例子。有一家汽车销售公司,该公司拥有不同品牌的汽车制造公司,如Maruti、Toyota、Mahindra、Ford等,拥有不同年份的汽车销售数据。因此,该公司只想整理2010年销售的汽车数据。对于这个问题,我们使用另一种整理技术,即groupby()方法。

汽车销售数据:

# Import module
import pandas as pd
 
# Creating Data
car_selling_data = {'Brand': ['Maruti', 'Maruti', 'Maruti',
                              'Maruti', 'Hyundai', 'Hyundai',
                              'Toyota', 'Mahindra', 'Mahindra',
                              'Ford', 'Toyota', 'Ford'],
                    'Year':  [2010, 2011, 2009, 2013,
                              2010, 2011, 2011, 2010,
                              2013, 2010, 2010, 2011],
                    'Sold': [6, 7, 9, 8, 3, 5,
                             2, 8, 7, 2, 4, 2]}
 
# Creating Dataframe of car_selling_data
df = pd.DataFrame(car_selling_data)
 
# printing Dataframe
print(df)

输出:

Python中的数据处理

年的数据:年:

# Import module
import pandas as pd
 
# Creating Data
car_selling_data = {'Brand': ['Maruti', 'Maruti', 'Maruti',
                              'Maruti', 'Hyundai', 'Hyundai',
                              'Toyota', 'Mahindra', 'Mahindra',
                              'Ford', 'Toyota', 'Ford'],
                    'Year':  [2010, 2011, 2009, 2013,
                              2010, 2011, 2011, 2010,
                              2013, 2010, 2010, 2011],
                    'Sold': [6, 7, 9, 8, 3, 5,
                             2, 8, 7, 2, 4, 2]}
 
# Creating Dataframe for Provided Data
df = pd.DataFrame(car_selling_data)
 
# Group the data when year = 2010
grouped = df.groupby('Year')
print(grouped.get_group(2010))

输出:

Python中的数据处理

通过消除重复来整理数据

Pandas duplicates()方法帮助我们从大数据中删除重复的值。数据处理的一个重要部分是从大数据集中去除重复的值。

语法:

DataFrame.duplicated(subset=None, keep='first')

这里的subset是指我们要删除重复值的列值。

keep中,我们有3个选项。

  • 如果keep =’first’,则第一个值被标记为原始值,其余的值如果出现,将被删除,因为它被认为是重复的。
  • 如果keep=’last’,那么最后一个值将被标记为原始值,其余所有相同的值将被删除,因为它被认为是重复的值。
  • 如果keep =’false’,所有出现一次以上的值都将被删除,因为所有的值都被认为是重复的。

例如,一所大学将组织活动。为了参加活动,学生必须在在线表格中填写他们的详细资料,这样他们就会联系他们。有可能一个学生会多次填写表格。如果一个学生填写多个条目,这可能会给活动组织者带来困难。组织者将得到的数据可以通过删除重复的值来轻松地进行整理。

想参加活动的学生数据的细节:

# Import module
import pandas as pd
 
# Initializing Data
student_data = {'Name': ['Amit', 'Praveen', 'Jagroop',
                         'Rahul', 'Vishal', 'Suraj',
                         'Rishab', 'Satyapal', 'Amit',
                         'Rahul', 'Praveen', 'Amit'],
 
                'Roll_no': [23, 54, 29, 36, 59, 38,
                            12, 45, 34, 36, 54, 23],
 
                'Email': ['xxxx@gmail.com', 'xxxxxx@gmail.com',
                          'xxxxxx@gmail.com', 'xx@gmail.com',
                          'xxxx@gmail.com', 'xxxxx@gmail.com',
                          'xxxxx@gmail.com', 'xxxxx@gmail.com',
                          'xxxxx@gmail.com', 'xxxxxx@gmail.com',
                          'xxxxxxxxxx@gmail.com', 'xxxxxxxxxx@gmail.com']}
 
# Creating Dataframe of Data
df = pd.DataFrame(student_data)
 
# Printing Dataframe
print(df)

输出:

Python中的数据处理

通过删除重复的条目对数据进行整理:

# import module
import pandas as pd
 
# initializing Data
student_data = {'Name': ['Amit', 'Praveen', 'Jagroop',
                         'Rahul', 'Vishal', 'Suraj',
                         'Rishab', 'Satyapal', 'Amit',
                         'Rahul', 'Praveen', 'Amit'],
 
                'Roll_no': [23, 54, 29, 36, 59, 38,
                            12, 45, 34, 36, 54, 23],
                'Email': ['xxxx@gmail.com', 'xxxxxx@gmail.com',
                          'xxxxxx@gmail.com', 'xx@gmail.com',
                          'xxxx@gmail.com', 'xxxxx@gmail.com',
                          'xxxxx@gmail.com', 'xxxxx@gmail.com',
                          'xxxxx@gmail.com', 'xxxxxx@gmail.com',
                          'xxxxxxxxxx@gmail.com', 'xxxxxxxxxx@gmail.com']}
 
# creating dataframe
df = pd.DataFrame(student_data)
 
# Here df.duplicated() list duplicate  Entries in ROllno.
# So that ~(NOT) is placed in order to get non duplicate values.
non_duplicate = df[~df.duplicated('Roll_no')]
 
# printing non-duplicate values
print(non_duplicate)

输出:

Python中的数据处理

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程