Skip to main content

如何用Python的pandas更新表格的行与列

作者:Prajwal CN

本教程将会介绍如何使用 Python 的 pandas 更新表格的行与列。日常中的大多数情况下,我们其实都没有为数据集分析做好万全准备,所以我们的表格中可能存在许多不一致、无效值与不合理的标签等等。话虽如此,更新这些值以使表格统一还是很有必要的。因此,本教程将重点介绍如何在 Python 中使用 pandas 更新表格的行与列。废话不多说,让我们赶紧行动吧!

1. 创建一个 pandas 数据框

现在,让我们来创建一个数据框,教程之后的部分中都会使用这个数据框,以帮助您了解如何对数据进行更新操作。此后,您便可以在自己的数据中应用这些方法。

pandas提供了 pd.DataFrame 函数来帮助您从一些数据中创建数据框。以下例子将演示它的效果:

#create a dictionary

import pandas as pd

fruit_data = {"Fruit": ['Apple','Avocado','Banana','Strawberry','Grape'],"Color": ['Red','Green','Yellow','Pink','Green'],
"Price": [45, 90, 60, 37, 49]
}

fruit_data

这样,我们就创建了一个python目录,其中是一些数据。现在让我们把这个目录变成pandas数据框。

#Dataframe

data = pd.DataFrame(fruit_data)
data

输出结果

这简直完美!通过pandas的 pd.DataFrame 函数可以轻松地将目录变成 pandas 数据框。现在,是时候修改我们的数据集了。

2. 更新列

有时,表格中的特征排布并不整齐,可能是没有按字母表排序,也可能是其它原因。而表格排布的统一有助于我们更高效地处理这些要素。

所以,第一步就让我们来试试更新 / 修改数据的特征排布。

#update the column name

data.rename(columns = {'Fruit':'Fruit Name'})

列排序的输出

完成了!如上所示,非常简单。您还可以一次更新多个要素名的列,只需在大括号下添加用逗号分隔的其它列名即可。

#multiple column update

data.rename(columns = {'Fruit':'Fruit Name','Colour':'Color','Price':'Cost'})

像这样,就可以同时更新所有的列了。

3. 更新列名的大小写

在处理有许多列的数据集时,可能会遇到列的名字大小写不一致的情况。

刚刚创建的示例数据框中,所有列的名字首字母均为大写。建议为所有列名统一大小写。不过,是大写还是小写可以由您自己决定。

#lower case

data.columns.str.lower()
data

列名大小写的输出

现在,所有的列名都为小写。

4. 更新行中的值

与更新列类似,更新行中的值也很简单,只需定位需要更新的行值,然后将它们修改为新的值即可。

可以用panda loc 函数定位需修改的行。

#updating rows

data.loc[3]

Fruit Strawberry
Color Pink
Price 37
Name: 3, dtype: object

我们定位到了第三行,第三行中是草莓这种水果的详细信息。现在,让我们用另一种名为菠萝的水果及其详细信息来更新这一行。

冲!!

#update

data.loc[3] = ['PineApple','Yellow','48']
data

行更新输出

完成!希望您也觉得更新一行数值很简单。但如果只想更新一行中的几个细节,而不是一整行,该怎么办呢?

#update specific values

data.loc[3, ['Price']]

Price 48
Name: 3, dtype: object

假设我们只想更新第三行水果的价格。当前水果的价格是48,我们需要将其更新为65。让我们开始行动吧!

#updating

data.loc[3, ['Price']] = [65]
data

更新一个行数值

好耶 :P

只用一行 python 代码就更新了菠萝的价格,就这么简单。

5. 按特定条件更新行与列

现在,轮到按特定条件更新行值了。最后,我们需要一些有意义、有助于分析的值。

首先,定义条件。

#Condition

updated = data['Price'] > 60
updated

现在我们要做的是将价格高于60的水果更新为“昂贵”。

0    False
1 True
2 False
3 True
4 False
Name: Price, dtype: bool

根据输出,有两种水果的价格超过60,应在数据中打上“昂贵”标签。

#Updating

data.loc[updated, 'Price'] = 'Expensive'
data

特定条件输出

哇哦,你真棒:)

你做的太完美啦!整个教程中使用的代码都不超过两行。建议努力学习pandas,因为pandas是一个很强大的库。它提供的许多函数仅有一行,却能完美完成任务。

结语 - 更新行与列

在进行任何分析之前,最重要的事就是更新数据的行与列。通过简单的函数与代码,我们就可以让数据变得更有意义。而且在这个过程中,我们还能进一步了解数据的质量与之后的要求。如果数据能以最正确的方式呈现,您一定能有许多宝贵的新发现。

希望本教程对您有用,也别忘了在分析时中应用这些方法。