Pandas中五个常见操作小结(pandas基础操作)

网友投稿 243 2022-09-06


Pandas中五个常见操作小结(pandas基础操作)

1. 引言

​​Pandas​​是专门为​​csv、excel​​等表格数据创建的数据分析、可视化和操作的第三方库。其中​​DataFrame​​是一种二维数据结构,它一般是由行和列组成的表格数据。在Python3中使用Pandas库,可以方便我们对表格数据执行相应的数据操作。

闲话少说,我们直接开始吧!

2. 创建空的DataFrame

Q1: 在Pandas中如何创建空的DataFrame ?

代码如下:

df = pd.DataFrame(index=[0,1,2,3,4],columns = ['col1','col2'])df.head() # Prints top 5 rows in the dataframe

输出如下:

col1 col20 NaN NaN1 NaN NaN2 NaN NaN3 NaN NaN4 NaN NaN

上述代码中,函数​​pd.DataFrame()​​创建了一个空的dataframe,包含两列,名字分别为​​col1​​以及​​col2​​

3. 从元组或字典中构建DataFrame

我们可以从元组列表中构建​​DataFrame​​,并为其赋初试值。样例代码如下:

data = [(1,2),(3,4),(5,6)]df = pd.DataFrame.from_records(data,columns=['col1','col2'])df.head()

输出如下:

当然,我们也可以从字典中来构建相应的​​DataFrame​​,样例代码如下:

data = {'col1':[1,3,5],'col2':[2,4,6]}df = pd.DataFrame.from_dict(data)df.head()

输出如下:

col1 col20 1 21 3 42 5 6

对上述字典中,键是列名,所有列表值的长度都应该相同。

4. DataFrame添加新行或新列

如果我们想要对已经存在的​​DataFrame​​中添加新的列,我们可以简单的这么操作,代码如下:

df['col3'] = [1,2,3] # ADDING COLUMN NAMES COL3

同样如果我们想要增加新的行,代码如下:

df.loc[df.shape[0],] = [7,8,9] # ADDING ROW AT LAST OF THE DATAFRAME

上述代码的运行结果如下:

上述代码中,​​df['col3'] ​​往​​df​​中添加了新的一列,添加值的数目等于现存的列中的元素数目。

​​df.loc[rows,columns]​​是一个基本的单元格选择操作。例如:在上述例子中,df总共有3行。要添加新行,我们调用​​df.shape[0]​​的值为3。此时上述代码等价于​​df.loc[3] = [7,8,9]​​。需要注意的是,我们需要传递与​​df​​中所有列数相同大小的数组。

5. DataFrame中删除行或列

在​​Pandas​​中我们主要使用函数​​drop​​来删除行或列,样例代码如下:

df.drop(index = [1,2], columns = ['col3'],inplace = True)df.head()

输出如下:

上述代码中,函数​​df.drop()​​通过​​index​​参数来选择需要删除的行,同时通过​​columns​​参数来选择需要删除的列。

6. 修改DataFrame指定单元格的值

在​​Pandas​​中主要利用函数​​df.loc()​​来修改指定单元格的数值,样例代码如下:

Example1: Change index=3 and column='col3' value = 80df.loc[3,'col2'] = 80Example2: Change the values in col1 which are divisible by 5 to -1df.loc[df.col1%5 == 0,'col1'] = -1df.head()

运行结果如下:

上述代码中,我们通过传递​​index=3​​以及​​column='col2'​​来将对应单元格中的数字修改为​​80​​;同时我们利用条件​​df.col1%5 == 0​​,满足该条件后的形式为​​df.loc[2,'col1'] = -1​​,进而可以改变对应单元格的数值。

7. 总结

本文重点介绍了Pandas中常用的五个简单操作,可以方便我们对二维表格数据进行简单的处理,并给出了相应的运行代码。您学废了吗?


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【路径规划】基于Beizer和改进PSO算法实现风环境下翼伞航迹规划附matlab代码
下一篇:B/S与C/S架构的区别介绍
相关文章

 发表评论

暂时没有评论,来抢沙发吧~