如何用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是一个很强大的库。它提供的许多函数仅有一行,却能完美完成任务。
结语 - 更新行与列
在进行任何分析之前,最重要的事就是更新数据的行与列。通过简单的函数与代码,我们就可以让数据变得更有意义。而且在这个过程中,我们还能进一步了解数据的质量与之后的要求。如果数据能以最正确的方式呈现,您一定能有许多宝贵的新发现。
希望本教程对您有用,也别忘了在分析时中应用这些方法。