Python Pandas入门:行与列快速上手与优化技巧

简介: Pandas是Python中强大的数据分析库,广泛应用于数据科学和数据分析领域。本文为初学者介绍Pandas的基本操作,包括安装、创建DataFrame、行与列的操作及优化技巧。通过实例讲解如何选择、添加、删除行与列,并提供链式操作、向量化处理、索引优化等高效使用Pandas的建议,帮助用户在实际工作中更便捷地处理数据。

Pandas是Python中一个强大的数据分析库,其灵活高效的数据处理能力深受数据科学家和数据分析师的喜爱。在Pandas中,数据通常以DataFrame(二维表格)和Series(一维序列)的形式存储和操作。本文旨在帮助初学者快速上手Pandas,掌握DataFrame中行与列的基本操作,并提供一些优化技巧,以便在实际工作中更高效地使用Pandas。站大爷代理IP工具的验证功能介绍 (11).png

一、Pandas安装与导入
在使用Pandas之前,需要先确保已安装该库。可以使用pip命令进行安装:

pip install pandas

安装完成后,导入Pandas库:

import pandas as pd

二、创建DataFrame
DataFrame是Pandas中最常用的数据结构,它类似于Excel中的表格,包含行和列。以下是一些创建DataFrame的常见方法:

从字典创建:

data = {
'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35],
'City': ['New York', 'Los Angeles', 'Chicago']
}
df = pd.DataFrame(data)
print(df)

输出结果:

Name Age City
0 Alice 25 New York
1 Bob 30 Los Angeles
2 Charlie 35 Chicago

从列表的列表创建:

data = [
['Alice', 25, 'New York'],
['Bob', 30, 'Los Angeles'],
['Charlie', 35, 'Chicago']
]
columns = ['Name', 'Age', 'City']
df = pd.DataFrame(data, columns=columns)
print(df)
输出结果同上。

从CSV文件创建:

df = pd.read_csv('data.csv')
print(df)

注意:这里假设data.csv文件与Python脚本在同一目录下,且文件内容格式正确。

三、行与列的基本操作

  1. 选择行与列
    选择单列:

print(df['Name'])
输出结果:

0 Alice
1 Bob
2 Charlie
Name: Name, dtype: object
选择多列:

print(df[['Name', 'City']])
输出结果:

Name City
0 Alice New York
1 Bob Los Angeles
2 Charlie Chicago
选择单行:

print(df.loc[0])

输出结果:

Name Alice
Age 25
City New York
Name: 0, dtype: object
选择多行:

print(df.loc[[0, 2]])
输出结果:

Name Age City
0 Alice 25 New York
2 Charlie 35 Chicago
按条件选择行:

print(df[df['Age'] > 30])
输出结果:

Name Age City
2 Charlie 35 Chicago

  1. 添加行与列
    添加单列:

df['Salary'] = [70000, 80000, 90000]
print(df)

输出结果:

Name Age City Salary
0 Alice 25 New York 70000
1 Bob 30 Los Angeles 80000
2 Charlie 35 Chicago 90000
添加多列:

new_columns = {'Occupation': ['Engineer', 'Doctor', 'Lawyer'], 'Experience': [5, 8, 10]}
df = df.assign(**new_columns)
print(df)
输出结果:

   Name  Age         City  Salary Occupation  Experience

0 Alice 25 New York 70000 Engineer 5
1 Bob 30 Los Angeles 80000 Doctor 8
2 Charlie 35 Chicago 90000 Lawyer 10

添加单行:

new_row = {'Name': 'David', 'Age': 40, 'City': 'Houston', 'Salary': 100000, 'Occupation': 'Architect', 'Experience': 12}
df = df.append(new_row, ignore_index=True)
print(df)

输出结果:

   Name  Age       City  Salary Occupation  Experience

0 Alice 25 New York 70000 Engineer 5
1 Bob 30 Los Angeles 80000 Doctor 8
2 Charlie 35 Chicago 90000 Lawyer 10
3 David 40 Houston 100000 Architect 12

  1. 删除行与列
    删除单列:

df = df.drop(columns=['Salary'])
print(df)
输出结果:

Name Age City Occupation Experience
0 Alice 25 New York Engineer 5
1 Bob 30 Los Angeles Doctor 8
2 Charlie 35 Chicago Lawyer 10
3 David 40 Houston Architect 12

删除多列:

df = df.drop(columns=['Occupation', 'Experience'])
print(df)

输出结果:

  Name  Age       City

0 Alice 25 New York
1 Bob 30 Los Angeles
2 Charlie 35 Chicago
3 David 40 Houston

删除单行:

df = df.drop(index=0)
print(df)
输出结果:

Name      Age       City

1 Bob 30 Los Angeles
2 Charlie 35 Chicago
3 David 40 Houston

删除多行:

df = df.drop(index=[1, 3])
print(df)

输出结果:

  Name  Age    City

2 Charlie 35 Chicago
四、优化技巧

  1. 使用链式操作
    Pandas支持链式操作,即将多个操作组合在一起,提高代码的可读性和效率。例如:

df = (
pd.read_csv('data.csv')
.drop(columns=['UnneededColumn1', 'UnneededColumn2'])
.rename(columns={'OldColumnName': 'NewColumnName'})
.query('Age > 30')
)
print(df)

  1. 避免使用循环
    Pandas的内置函数通常比Python原生的循环更高效。尽量避免在DataFrame上使用循环操作,而是利用Pandas的向量化操作。例如,计算每行的和:

不推荐的方式(低效)

for index, row in df.iterrows():
sum_row = row['Column1'] + row['Column2'] + row['Column3']

# do something with sum_row

推荐的方式(高效)

df['Sum'] = df[['Column1', 'Column2', 'Column3']].sum(axis=1)

  1. 使用loc和iloc进行精确选择
    loc基于标签选择数据,而iloc基于整数位置选择数据。在需要精确选择数据时,使用这两个函数可以提高代码的清晰度和性能。例如:

选择年龄大于30且职业为Doctor的行

df_filtered = df.loc[(df['Age'] > 30) & (df['Occupation'] == 'Doctor')]

选择前两行

df_first_two = df.iloc[:2]

  1. 使用apply函数进行自定义操作
    apply函数允许对DataFrame的列或行应用自定义函数。这在处理复杂逻辑时非常有用。例如,计算每行的平均年龄(假设有多列年龄数据):

def calculate_average_age(row):
age_columns = ['Age1', 'Age2', 'Age3'] # 假设这些列存在
return row[age_columns].mean()

df['AverageAge'] = df.apply(calculate_average_age,axis=1)
print(df)

在这个例子中,calculate_average_age 函数计算了每行中指定年龄列的平均值,并将结果存储在新的列 AverageAge 中。axis=1 参数指定函数应用于行而不是列。

  1. 使用向量化字符串操作
    Pandas 提供了许多针对字符串的向量化操作,这些操作通常比使用 Python 的循环或列表推导式更快。例如,要将所有城市名称转换为大写:

df['City'] = df['City'].str.upper()
print(df)

  1. 使用合适的数据类型
    确保 DataFrame 中的列使用合适的数据类型,因为数据类型会影响性能。例如,将整数列存储为整数类型而不是浮点数或对象类型。可以使用 astype 方法转换数据类型:

df['Age'] = df['Age'].astype(int)
print(df.dtypes)

  1. 使用 Dask 或 Modin 进行大规模数据处理
    对于非常大的数据集,Pandas 可能会变得缓慢或内存不足。在这种情况下,可以考虑使用 Dask 或 Modin,这两个库提供了与 Pandas 兼容的 API,但能够处理更大规模的数据集。

  2. 优化读取和写入文件
    当从文件读取数据或写入数据时,可以通过调整参数来优化性能。例如,使用 read_csv 的 nrows 参数限制读取的行数,或使用 chunksize 参数分块读取大文件。

分块读取大文件

chunks = pd.read_csv('large_file.csv', chunksize=10000)
for chunk in chunks:

 # 处理每个块
 pass
  1. 利用索引
    Pandas 的索引不仅用于快速访问数据,还可以加速数据操作。确保为经常用作过滤条件的列设置索引,或者使用 set_index 方法将列转换为索引。

df.set_index('Name', inplace=True)
print(df)

  1. 使用查询(query)方法
    query 方法允许使用字符串表达式来查询数据,这可以提高代码的可读性。例如:

df_filtered = df.query('Age > 30 and Occupation == "Doctor"')
print(df_filtered)

总结:
Pandas 是一个功能强大的数据分析库,提供了丰富的工具和函数来处理数据。通过掌握行与列的基本操作以及上述优化技巧,你可以更高效地使用 Pandas 来处理和分析数据。记住,在实际工作中,不断优化你的代码和数据处理流程是非常重要的。

目录
相关文章
|
1月前
|
存储 数据采集 人工智能
Python编程入门:从零基础到实战应用
本文是一篇面向初学者的Python编程教程,旨在帮助读者从零开始学习Python编程语言。文章首先介绍了Python的基本概念和特点,然后通过一个简单的例子展示了如何编写Python代码。接下来,文章详细介绍了Python的数据类型、变量、运算符、控制结构、函数等基本语法知识。最后,文章通过一个实战项目——制作一个简单的计算器程序,帮助读者巩固所学知识并提高编程技能。
|
4天前
|
数据采集 供应链 数据可视化
Pandas数据应用:供应链优化
在当今全球化的商业环境中,供应链管理日益复杂。Pandas作为Python的强大数据分析库,能有效处理库存、物流和生产计划中的大量数据。本文介绍如何用Pandas优化供应链,涵盖数据导入、清洗、类型转换、分析与可视化,并探讨常见问题及解决方案,帮助读者在供应链项目中更加得心应手。
33 21
|
21天前
|
人工智能 编译器 Python
python已经安装有其他用途如何用hbuilerx配置环境-附带实例demo-python开发入门之hbuilderx编译器如何配置python环境—hbuilderx配置python环境优雅草央千澈
python已经安装有其他用途如何用hbuilerx配置环境-附带实例demo-python开发入门之hbuilderx编译器如何配置python环境—hbuilderx配置python环境优雅草央千澈
python已经安装有其他用途如何用hbuilerx配置环境-附带实例demo-python开发入门之hbuilderx编译器如何配置python环境—hbuilderx配置python环境优雅草央千澈
|
1月前
|
存储 大数据 数据处理
Pandas入门:安装与基本操作
Pandas 是一个强大的 Python 数据处理库,提供高效的数据结构和分析工具。本文从安装开始,介绍 Pandas 的基本操作,包括 `Series` 和 `DataFrame` 的创建、查看、选择、过滤、添加和删除数据等。同时,指出了一些常见的问题和易错点,帮助初学者快速上手。
86 2
|
1月前
|
IDE 程序员 开发工具
Python编程入门:打造你的第一个程序
迈出编程的第一步,就像在未知的海洋中航行。本文是你启航的指南针,带你了解Python这门语言的魅力所在,并手把手教你构建第一个属于自己的程序。从安装环境到编写代码,我们将一步步走过这段旅程。准备好了吗?让我们开始吧!
|
1月前
|
测试技术 开发者 Python
探索Python中的装饰器:从入门到实践
装饰器,在Python中是一块强大的语法糖,它允许我们在不修改原函数代码的情况下增加额外的功能。本文将通过简单易懂的语言和实例,带你一步步了解装饰器的基本概念、使用方法以及如何自定义装饰器。我们还将探讨装饰器在实战中的应用,让你能够在实际编程中灵活运用这一技术。
45 7
|
1月前
|
开发者 Python
Python中的装饰器:从入门到实践
本文将深入探讨Python的装饰器,这一强大工具允许开发者在不修改现有函数代码的情况下增加额外的功能。我们将通过实例学习如何创建和应用装饰器,并探索它们背后的原理和高级用法。
50 5
|
1月前
|
机器学习/深度学习 人工智能 算法
深度学习入门:用Python构建你的第一个神经网络
在人工智能的海洋中,深度学习是那艘能够带你远航的船。本文将作为你的航标,引导你搭建第一个神经网络模型,让你领略深度学习的魅力。通过简单直观的语言和实例,我们将一起探索隐藏在数据背后的模式,体验从零开始创造智能系统的快感。准备好了吗?让我们启航吧!
92 3
|
2月前
|
数据采集 存储 数据挖掘
Python数据分析:Pandas库的高效数据处理技巧
【10月更文挑战第27天】在数据分析领域,Python的Pandas库因其强大的数据处理能力而备受青睐。本文介绍了Pandas在数据导入、清洗、转换、聚合、时间序列分析和数据合并等方面的高效技巧,帮助数据分析师快速处理复杂数据集,提高工作效率。
107 0
|
4月前
|
机器学习/深度学习 数据处理 Python
从NumPy到Pandas:轻松转换Python数值库与数据处理利器
从NumPy到Pandas:轻松转换Python数值库与数据处理利器
131 1

热门文章

最新文章