Code前端首页关于Code前端联系我们

Python 数据科学教程:处理合并、分组、连接的内置函数

terry 2年前 (2023-09-25) 阅读数 61 #后端开发

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

 合并数据

Python中的Pandas库有一个函数merge,它作为DataFrame对象

之间所有标准数据库连接操作的入口点现在创建两个不同的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)
Python

运行上面的示例代码,得到如下结果 -

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

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

分组数据

数据集经常需要根据数据分析分组,因为我们对分组发现在数据集中。分析结果。 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))
Python

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

   Points  Rank     Team    Year
0     876     1   Riders    2014
2     863     2   Devils    2014
4     741     3   Kings     2014
9     701     4   Royals    2014
Shell

连接数据

Pandas 提供了各种函数可以轻松连接系列、DataFrame

面板 对象组合在一起。在下面的示例中,函数 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]))
Python

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

    Marks_scored     Name   subject_id
1             98     Alex         sub1
2             90      Amy         sub2
3             87    Allen         sub4
4             69    Alice         sub6
5             78   Ayoung         sub5
1             89    Billy         sub2
2             80    Brian         sub4
3             79     Bran         sub3
4             97    Bryce         sub6
5             88    Betty         sub5

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门