Python Pandas:高效更新DataFrame行与列的终极指南
这是文章《如何使用Python Pandas更新行和列》的第1部分(共2部分)。
内容片段: 让我们了解如何使用Python的Pandas库来更新表格的行和列。在实际应用中,我们获取的数据集通常无法直接用于分析。数据中可能存在许多不一致的值、无效的数值、不正确的标签等问题。因此,更新这些值以确保数据的一致性至关重要。在本教程中,我们将重点介绍如何使用Pandas库在Python中更新行和列。事不宜迟,让我们立即开始!
1. 创建一个Pandas数据框
在整个教程中,我们将使用一个现在要创建的数据框。这将帮助您理解数据的更新操作。之后,您可以将这些方法应用到您自己的数据上。
为了创建一个数据框,Pandas提供了pd.DataFrame
函数,它可以帮助您从一些数据创建数据框。让我们看看它是如何工作的。
# 创建一个字典
import pandas as pd
fruit_data = {"Fruit": ['Apple','Avacado','Banana','Strawberry','Grape'],
"Color": ['Red','Green','Yellow','Pink','Green'],
"Price": [45, 90, 60, 37, 49]
}
fruit_data
在这里,我们创建了一个包含一些数据值的Python字典。现在,我们需要将这个字典转换成一个Pandas数据框。
# 数据框
data = pd.DataFrame(fruit_data)
data

太完美了!使用Pandas中的pd.DataFrame
函数,您可以轻松将字典转换为Pandas数据框。我们的数据集现在已准备好进行后续操作。
更多阅读:如何使用Pandas修改列顺序。
2. 更新列名
有时,列或特征的名称会不一致,可能涉及到字母大小写等方面。统一的命名有助于我们更有效地处理这些特征。
所以,作为第一步,我们将看看如何更新/更改我们数据中的列或特征名称。
# 更新列名
data.rename(columns = {'Fruit':'Fruit Name'})

就是这样。就像上面显示的那样简单。您甚至可以一次更新多个列名。为此,您需要在花括号内用逗号分隔其他列名。
# 多个列更新
data.rename(columns = {'Fruit':'Fruit Name','Colour':'Color','Price':'Cost'})
就像这样,你可以同时更新所有的列。
3. 更新列名的大小写
列名规范化:统一大小写
在处理包含大量列的数据集时,列名的一致性问题时常出现。在我们的数据中,您可能注意到所有列名的首字母都是大写的。为了保持数据处理的规范性,我们强烈建议为所有列名采用统一的大小写格式。
您可以选择将它们全部转换为大写或小写。以下示例展示了如何将列名转换为小写:
# 将所有列名转换为小写
data.columns = data.columns.str().lower()
print(data)

现在,我们所有列名都已成功转换为小写。
4. 更新行值
更新行值与更新列类似,操作同样简单直观。首先,您需要定位目标行,然后即可使用新值对其进行更新。
您可以使用 Pandas 的 loc
函数来精确地定位行。
# 定位第3行
data.loc[3]
Fruit Strawberry
Color Pink
Price 37
Name: 3, dtype: object
我们成功找到了第3行,其中包含关于水果“草莓”的详细信息。现在,我们将把该行更新为新的水果“菠萝”及其相关信息。
让我们开始吧!
# 更新第3行数据
data.loc[3] = ['PineApple','Yellow','48']
print(data)

就是这样!希望您也觉得更新数据中的行值非常容易。现在,假设您只需要更新一行中的部分细节,而不是整行内容。那么,您会如何解决这个问题呢?
# 更新特定值:定位第3行的'Price'列
data.loc[3, ['Price']]
Price 48
Name: 3, dtype: object
我们只需要更新第3行水果的价格。当前价格是48,但我们希望将其更新为65。让我们来操作吧。
# 更新第3行'Price'列的值为65
data.loc[3, ['Price']] = [65]
print(data)

太棒了!我们仅用一行 Python 代码就将菠萝的价格更新为65。操作就是如此简单高效。
根据条件更新行和列
是的,我们现在将根据特定条件来更新行的值。最终,我们希望得到一些有意义的值,这将对我们的数据分析非常有帮助。
让我们来定义我们的条件。
# 定义条件:价格大于60
updated = data['Price'] > 60
print(updated)
我们的目标是将价格高于60的水果标记为“昂贵”。
0 False
1 True
2 False
3 True
4 False
Name: Price, dtype: bool
根据输出结果,我们有两种水果的价格超过了60。现在,让我们在数据中将这些水果标记为“Expensive”(昂贵)。
# 根据条件更新:将价格高于60的水果的'Price'列更新为'Expensive'
data.loc[updated, 'Price'] = 'Expensive'
print(data)

相信我,您做得非常出色!您以令人惊叹且完美的方式完成了这项任务。在整个教程中,我从未用过两行以上的代码。我能给出的最好建议就是尽可能多地学习 Pandas。这是一个非常强大的库,提供了许多能够完美完成工作且仅需一行代码的函数。
总结 – 更新行和列
在进行任何数据分析之前,更新数据的行和列是我们应该关注的主要事项之一。通过简单的函数和代码,我们可以使数据变得更有意义,并且在这个过程中,我们肯定会对数据质量和任何进一步的需求有一些深入的见解。如果我们的数据是准确无误的,相信我,您会从中发现许多珍贵且前所未闻的故事。
希望本教程对您有所帮助,请务必在您的分析工作中实践这些方法。
现在就到这里吧,祝您愉快的 Python 之旅!
更多阅读:Pandas DataFrame