Pandas使用DataFrame进行数据分析比赛进阶之路(一)

简介:

这篇文章中使用的数据集是一个足球球员各项技能及其身价的csv表,包含了60多个字段。数据集下载链接:数据集

1、DataFrame.info()

这个函数可以输出读入表格的一些具体信息。这对于加快数据预处理非常有帮助。

import pandas as pd
import matplotlib.pyplot as plt

data = pd.read_csv('dataset/soccer/train.csv')
print(data.info())
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 10441 entries, 0 to 10440
Data columns (total 65 columns):
id                          10441 non-null int64
club                        10441 non-null int64
league                      10441 non-null int64
birth_date                  10441 non-null object
height_cm                   10441 non-null int64
weight_kg                   10441 non-null int64
nationality                 10441 non-null int64
potential                   10441 non-null int64
                   ...
dtypes: float64(12), int64(50), object(3)
memory usage: 5.2+ MB
None

2、DataFrame.query()

import pandas as pd
import matplotlib.pyplot as plt

data = pd.read_csv('dataset/soccer/train.csv')
print(data.query('lw>cf'))      # 这两个方法是等价的
print(data[data.lw > data.cf])  # 这两个方法是等价的

3、DataFrame.value_counts()

这个函数可以统计某一列中不同值出现的频率。

import pandas as pd
import matplotlib.pyplot as plt

data = pd.read_csv('dataset/soccer/train.csv')
print(data.work_rate_att.value_counts())
Medium    7155
High      2762
Low        524
Name: work_rate_att, dtype: int64

4、DataFrame.sort_values()

按照某一列的数值进行排序后输出。

import pandas as pd
import matplotlib.pyplot as plt

data = pd.read_csv('dataset/soccer/train.csv')
print(data.sort_values(['sho']).head(5))

5、DataFrame.groupby()

  • 根据国籍(nationality)这一列的属性进行分组,然后分别计算相同国籍的潜力(potential)的平均值。
import pandas as pd
import matplotlib.pyplot as plt

data = pd.read_csv('dataset/soccer/train.csv')
potential_mean = data['potential'].groupby(data['nationality']).mean().head(5)
print(potential_mean)
nationality
1    74.945338
2    72.914286
3    67.892857
4    69.000000
5    70.024242
Name: potential, dtype: float64
  • 根据国籍(nationality),俱乐部(club)这两列的属性进行分组,然后分别计算球员潜力(potential)的平均值。
import pandas as pd
import matplotlib.pyplot as plt

data = pd.read_csv('dataset/soccer/train.csv')
potential_mean = data['potential'].head(20).groupby([data['nationality'], data['club']]).mean()
print(potential_mean)
nationality  club
1            148     76
             461     72
5            83      64
29           593     68
43           213     67
51           258     62
52           112     68
54           604     81
63           415     70
64           359     74
78           293     73
90           221     70
96           80      72
101          458     67
111          365     64
             379     83
             584     65
138          9       72
155          543     72
163          188     71
Name: potential, dtype: int64

值得注意的是,在分组函数后面使用一个size()函数可以返回带有分组大小的结果。

potential_mean = data['potential'].head(200).groupby([data['nationality'], data['club']]).size()
nationality  club
1            148     1
43           213     1
51           258     1
52           112     1
54           604     1
78           293     1
96           80      1
101          458     1
155          543     1
163          188     1
Name: potential, dtype: int64

6、DataFrame.agg()

这个函数一般在groupby函数之后使用。

import pandas as pd
import matplotlib.pyplot as plt

data = pd.read_csv('dataset/soccer/train.csv')
potential_mean = data['potential'].head(10).groupby(data['nationality']).agg(['max', 'min'])
print(potential_mean)
            max  min
nationality          
1             76   76
43            67   67
51            62   62
52            68   68
54            81   81
78            73   73
96            72   72
101           67   67
155           72   72
163           71   71

7、DataFrame.apply()

将某一个函数应用到某一列或者某一行上,可以极大加快处理速度。

import pandas as pd
import matplotlib.pyplot as plt


#  返回球员出生日期中的年份
def birth_date_deal(birth_date):
    year = birth_date.split('/')[2]
    return year

data = pd.read_csv('dataset/soccer/train.csv')
result = data['birth_date'].apply(birth_date_deal).head() 
print(result)
0    96
1    84
2    99
3    88
4    80
Name: birth_date, dtype: object

当然如果使用lambda函数的话,代码会更加简洁:

data = pd.read_csv('dataset/soccer/train.csv')
result = data['birth_date'].apply(lambda x: x.split('/')[2]).head()
print(result)
相关文章
|
1月前
|
数据挖掘 C语言 索引
数据分析-pandas(三)
在这里,我们将讨论pandas数据结构中常见的许多基本功能
18 0
|
1月前
|
数据挖掘 索引 Python
数据分析-pandas(一)
pandas是Python的一个第三方开源库,是Python数据分析的必备高级工具,Pandas 这个名字来源于面板数据(Panel Data)与数据分析(data analysis)这两个名词的组合。在经济学中,Panel Data 是一个关于多维数据集的术语。Pandas 最初被应用于金融量化交易领域,现在它的应用领域更加广泛,涵盖了农业、工业、交通等许多行业。
35 0
|
1月前
|
BI 数据处理 索引
Pandas基本操作:Series和DataFrame(Python)
Pandas基本操作:Series和DataFrame(Python)
103 1
|
1月前
|
SQL 数据挖掘 数据处理
Python数据分析(二)—— Pandas快速入门
Python数据分析(二)—— Pandas快速入门
|
7天前
|
数据采集 SQL 数据可视化
Python数据分析工具Pandas
【4月更文挑战第14天】Pandas是Python的数据分析库,提供Series和DataFrame数据结构,用于高效处理标记数据。它支持从多种数据源加载数据,包括CSV、Excel和SQL。功能包括数据清洗(处理缺失值、异常值)、数据操作(切片、过滤、分组)、时间序列分析及与Matplotlib等库集成进行数据可视化。其高性能底层基于NumPy,适合大型数据集处理。通过加载数据、清洗、分析和可视化,Pandas简化了数据分析流程。广泛的学习资源使其成为数据分析初学者的理想选择。
13 1
|
9天前
|
机器学习/深度学习 数据可视化 数据处理
Pandas进阶学习:探索更多高级特性与技巧
【4月更文挑战第16天】本文深入探讨Pandas的进阶特性,包括向量化操作、apply方法、数据重塑、布尔索引、多重索引、性能优化和库集成。通过学习,可以提升数据处理效率,如使用布尔条件筛选、CategoricalDtype优化性能、分块处理大数据及与NumPy、Matplotlib、Seaborn和scikit-learn集成。掌握这些技巧能助你更好地挖掘数据价值。
|
9天前
|
供应链 搜索推荐 数据挖掘
Pandas实战案例:电商数据分析的实践与挑战
【4月更文挑战第16天】本文通过一个电商数据分析案例展示了Pandas在处理销售数据、用户行为分析及商品销售趋势预测中的应用。在数据准备与清洗阶段,Pandas用于处理缺失值、重复值。接着,通过用户购买行为和商品销售趋势分析,构建用户画像并预测销售趋势。实践中遇到的大数据量和数据多样性挑战,通过分布式计算和数据标准化解决。未来将继续深入研究Pandas与其他先进技术的结合,提升决策支持能力。
|
9天前
|
存储 数据可视化 数据挖掘
实战案例:Pandas在金融数据分析中的应用
【4月更文挑战第16天】本文通过实例展示了Pandas在金融数据分析中的应用。案例中,一家投资机构使用Pandas加载、清洗股票历史价格数据,删除无关列并重命名,将日期设为索引。接着,数据被可视化以观察价格走势,进行基本统计分析了解价格分布,以及计算移动平均线来平滑波动。Pandas的便捷功能在金融数据分析中体现出高效率和实用性。
|
9天前
|
存储 数据挖掘 数据处理
Pandas数据结构详解:Series与DataFrame的奥秘
【4月更文挑战第16天】Pandas的Series和DataFrame是数据处理的核心工具。Series是一维标签化数组,支持各种数据类型,可通过索引便捷访问。DataFrame是二维表格型数据结构,适合存储和操作表格数据。两者提供丰富的统计方法和操作,如筛选、排序、分组聚合。它们之间可相互转换和交互,助力高效的数据分析。理解和掌握Series和DataFrame对于数据科学至关重要。
|
16天前
|
数据采集 数据挖掘 数据处理
Pandas库在数据分析中的作用
【4月更文挑战第9天】Pandas,一个基于NumPy的数据分析Python库,以强大的数据处理和便捷的接口闻名。它包含两个核心数据结构:Series(一维标签数组)和DataFrame(二维表格)。Pandas支持数据导入/导出(如CSV、Excel),数据清洗(处理缺失值和重复值),描述性统计分析,分组聚合,以及与Matplotlib等库集成实现数据可视化。通过多索引和层次化索引,Pandas能灵活处理复杂数据集,是数据科学领域的关键工具。本文旨在帮助读者理解并运用Pandas进行高效数据分析。