page contents

Python教程:Python处理三种常见Excel任务

本文讲述了python教程:Python处理三种常见Excel任务!具有很好的参考价值,希望对大家有所帮助。一起跟随好学星城小编过来看看吧,具体如下:

attachments-2024-05-dmNJpxcC663b128771d60.png本文讲述了python教程:Python处理三种常见Excel任务!具有很好的参考价值,希望对大家有所帮助。一起跟随好学星城小编过来看看吧,具体如下:

如何使用Python的Pandas库处理三种常见的Excel任务:编写IF函数、实现文本至列的功能和给数据添加一个总行。每项任务均包含相应的代码示例和详细解释,帮助读者从Excel更轻松地转向Python。

从Excel转到Python可能会感到困扰 —— 但实际上并不需要!本教程将指导你如何使用Pandas在Python中处理Excel中的三种常见任务。

在本文结束时,你将会学到:

在 Pandas 中编写 IF()函数,

实现文本至列的功能

给数据添加一个总行

假设你知道如何使用Pandas读取Excel文件。如果准备基础,不用担心,请查阅此教程。为了保持示例代码简单性,假设正在使用下面的 DataFrame:

# 加载一个 Pandas 的样例 DataFrame

import pandas as pd

df = pd.DataFrame({

    'Name': ['Nik', 'Kate', 'Evan'],

    'Location': ['Toronto, ON', 'Atlanta, GA', 'Portland, OR'],

    'Total': [99.99, 125.65, 33.43]

})


print(df)


# 输出:

#    Name      Location   Total

# 0   Nik   Toronto, ON   99.99

# 1  Kate   Atlanta, GA  125.65

# 2  Evan  Portland, OR   33.43

编写IF函数

首先来看看如何在Pandas中编写 IF() 函数。有许多方法可以处理这个问题,但让看看如何使用列表推导如何实现这个目标。

看看下面的列表推导,它检查总数Total是否超过100,并根据结果分配一个新的列。

# 在 Python 中使用 if 语句

import pandas as pd


df = pd.DataFrame({

    'Name': ['Nik', 'Kate', 'Evan'],

    'Location': ['Toronto, ON', 'Atlanta, GA', 'Portland, OR'],

    'Total': [99.99, 125.65, 33.43]

})


df['Over 100'] = ['Yes' if Total > 100 else 'No' for Total in df['Total']]


print(df)


# 输出:

#    Name      Location   Total Over 100

# 0   Nik   Toronto, ON   99.99       No

# 1  Kate   Atlanta, GA  125.65      Yes

# 2  Evan  Portland, OR   33.43       No

在上面的代码中,编写了一个列表推导,它在总列中循环,如果值超过100,则返回Yes,否则返回No。虽然这不是最高效的代码,但它很容易理解。

文本转列

在这个部分,将探索如何复制文本至列的特性。该特性能让你把一个用分隔符分隔的文本划分为多个列。幸运的是,Pandas处理起来非常简单!

看看下面的代码:

# 在 Pandas 中使用文本至列

import pandas as pd


df = pd.DataFrame({

    'Name': ['Nik', 'Kate', 'Evan'],

    'Location': ['Toronto, ON', 'Atlanta, GA', 'Portland, OR'],

    'Total': [99.99, 125.65, 33.43]

})


df['Over 100'] = ['Yes' if Total > 100 else 'No' for Total in df['Total']]

df[['City', 'State']] = df['Location'].str.split(', ', expand=True)

print(df)

# 输出:

#    Name      Location   Total Over 100      City State

# 0   Nik   Toronto, ON   99.99       No   Toronto    ON

# 1  Kate   Atlanta, GA  125.65      Yes   Atlanta    GA

# 2  Evan  Portland, OR   33.43       No  Portland    OR

在上面的代码中,根据 ',' 分隔符,把 Location 列分成了两列。来看看这是怎么做到的:

一次分配了两个列(注意我们是如何使用双方括号[]的)

然后应用split()函数来分割文本

使用 expand=True 参数,告诉 Pandas 想把结果列表划分为多个列

添加一个总行

最后,来看一下如何给 Pandas DataFrame 添加一个总行。

我们可以使用 .loc 访问器分配一个新行。给 Name 列分配一个 'Total' 单词,并把 Total 列的值加起来:

import pandas as pd


df = pd.DataFrame({

    'Name': ['Nik', 'Kate', 'Evan'],

    'Location': ['Toronto, ON', 'Atlanta, GA', 'Portland, OR'],

    'Total': [99.99, 125.65, 33.43]

})


df['Over 100'] = ['Yes' if Total > 100 else 'No' for Total in df['Total']]

df[['City', 'State']] = df['Location'].str.split(', ', expand=True)

df.loc[3, 'Name'] = 'Total'

df.loc[3, 'Total'] = df['Total'].sum()


print(df)


# 输出:

#     Name      Location   Total Over 100      City State

# 0    Nik   Toronto, ON   99.99       No   Toronto    ON

# 1   Kate   Atlanta, GA  125.65      Yes   Atlanta    GA

# 2   Evan  Portland, OR   33.43       No  Portland    OR

# 3  Total           NaN  259.07      NaN       NaN   NaN

记住一点,在做这个操作时实际上修改了原始的 DataFrame。


结论

在本文中,你学习了如何在 Python中使用Pandas复制三种常见的Excel函数。

首先学习了如何复制IF函数。然后,学习如何使用文本至列特性。最后,学会了如何给数据添加一个总行。

更多相关技术内容咨询欢迎前往并持续关注好学星城论坛了解详情。

想高效系统的学习Python编程语言,推荐大家关注一个微信公众号:Python编程学习圈。每天分享行业资讯、技术干货供大家阅读,关注即可免费领取整套Python入门到进阶的学习资料以及教程,感兴趣的小伙伴赶紧行动起来吧。

attachments-2022-05-rLS4AIF8628ee5f3b7e12.jpg

  • 发表于 2024-05-08 13:51
  • 阅读 ( 57 )
  • 分类:Python开发

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
小柒
小柒

1316 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1316 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章