如何使用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教程欢迎持续关注编程学习网。
扫码二维码 获取免费视频学习资料
- 本文固定链接: http://phpxs.com/post/12040/
- 转载请注明:转载必须在正文中标注并保留原文链接
- 扫码: 扫上方二维码获取免费视频资料
查 看2022高级编程视频教程免费获取