编程学习网 > 编程语言 > Python > Python教程:Python处理三种常见Excel任务
2024
05-08

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处理三种常见Excel任务的详细内容,想要了解更多Python教程欢迎持续关注编程学习网。

扫码二维码 获取免费视频学习资料

Python编程学习

查 看2022高级编程视频教程免费获取