Python数据噪音

Python数据噪音

数据处理涉及以各种格式处理数据,例如合并,分组,连接等,以便分析或准备将其与另一组数据一起使用。 Python具有内置函数功能,可将这些争议方法应用于各种数据集以实现分析目标。 在本章中,我们将看几个基于这些方法的例子。

 合并数据

Python中的Pandas库提供了一个函数merge,作为DataFrame对象之间所有标准数据库连接操作的入口 -

pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None,
left_index=False, right_index=False, sort=True)

现在创建两个不同的DataFrame并对其执行合并操作。

# import the pandas library
import pandas as pd
left = pd.DataFrame({
         'id':[1,2,3,4,5],
         'Name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'],
         'subject_id':['sub1','sub2','sub4','sub6','sub5']})
right = pd.DataFrame(
         {'id':[1,2,3,4,5],
         'Name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'],
         'subject_id':['sub2','sub4','sub3','sub6','sub5']})
print (left)
print (right)

执行上面示例代码,得到以下结果 -

    Name  id   subject_id
  Alex   1         sub1
   Amy   2         sub2
 Allen   3         sub4
 Alice   4         sub6
 Ayoung  5         sub5

    Name  id   subject_id
 Billy   1         sub2
 Brian   2         sub4
 Bran    3         sub3
 Bryce   4         sub6
 Betty   5         sub5

分组数据

数据分析中经常需要对数据集进行分组,因为我们需要根据数据集中存在的各个组的结果进行分析。 Panadas具有内置的方法,可以将数据转换为各种分组。

在下面的示例中,我们按年分组数据,然后获得特定年份的结果。

# import the pandas library
import pandas as pd

ipl_data = {'Team': ['Riders', 'Riders', 'Devils', 'Devils', 'Kings',
         'kings', 'Kings', 'Kings', 'Riders', 'Royals', 'Royals', 'Riders'],
         'Rank': [1, 2, 2, 3, 3,4 ,1 ,1,2 , 4,1,2],
         'Year': [2014,2015,2014,2015,2014,2015,2016,2017,2016,2014,2015,2017],
         'Points':[876,789,863,673,741,812,756,788,694,701,804,690]}
df = pd.DataFrame(ipl_data)

grouped = df.groupby('Year')
print (grouped.get_group(2014))

执行上面示例代码,得到以下结果 -

   Points  Rank     Team    Year
    1   Riders    2014
    2   Devils    2014
    3   Kings     2014
    4   Royals    2014

连接数据

Pandas提供了各种功能,可以轻松地将SeriesDataFramePanel对象组合在一起。 在下面的例子中,concat函数沿轴执行串联操作。创建不同的对象并进行连接。

import pandas as pd
one = pd.DataFrame({
         'Name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'],
         'subject_id':['sub1','sub2','sub4','sub6','sub5'],
         'Marks_scored':[98,90,87,69,78]},
         index=[1,2,3,4,5])
two = pd.DataFrame({
         'Name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'],
         'subject_id':['sub2','sub4','sub3','sub6','sub5'],
         'Marks_scored':[89,80,79,97,88]},
         index=[1,2,3,4,5])
print (pd.concat([one,two]))

执行上面示例代码,得到以下结果 -

    Marks_scored     Name   subject_id
    Alex         sub1
     Amy         sub2
   Allen         sub4
   Alice         sub6
  Ayoung         sub5
   Billy         sub2
   Brian         sub4
    Bran         sub3
   Bryce         sub6
   Betty         sub5