pandas 对数据帧DataFrame中数据的增删、补全及转换操作

1、创建数据帧

import pandas as pd

df = pd.DataFrame([[1, ‘A‘, ‘3%‘ ], [2, ‘B‘], [3, ‘C‘, ‘5%‘]], index=[‘row_0‘, ‘row_1‘, ‘row_2‘], columns=[‘col_0‘, ‘col_1‘, ‘col_2‘])

2、增加行、列

  数据帧DataFrame的每一行都可看作是一个对象,每一列都是该对象的不同属性。每行都具有多维度的属性,因此每行都可以看作是一个小的DataFrame;而每列的数据类型都相同,因此每列都可以看作是一个Series。

2.1 增加行

  创建新的DataFrame追加至原有数据帧的尾部,即可实现行的增加。通过df.append()实现行的追加。

# 创建新的数据帧
df_row3 = pd.DataFrame([[4, ‘D‘, ‘9%‘]], index=[‘row_3‘], columns=[‘col_0‘, ‘col_1‘, ‘col_2‘])
# 追加至原有数据帧尾部
df = df.append(df_row3)

2.2 增加列

  创建新的Series追加至原有数据帧的尾部,即可实现列的增加。

# 创建新系列作为新追加的列
df[‘col_4‘] = pd.Series([‘!‘, ‘@‘, ‘$‘, ‘&‘], index=[‘row_0‘, ‘row_1‘, ‘row_2‘, ‘row_3‘])

3、删除行、列

3.1 删除行  

  通过向df.drop()中传入行索引实现对行的删除。

# 删除最后一行
df = df.drop(‘row_3‘)

3.2 删除列

  通过del 或df.pop() 删除索引值对应的列。

# del df[‘col_4‘],删除最后一列,与下句代码等价
df.pop(‘col_4‘)

  注意:df.pop()实现了对df的删除操作,其返回值是被删除的列,而不是新的df。

4、数据补全

  可以看出,row_1行,col_2列对应位置的元素为空,在实际计算过程中,需对空数据进行补全。可通过df.fillna()对df的空数据进行补全,这里以补0为例。

# df.fillna(0, inplace=True),就地补0,与下句代码等价
df = df.fillna(0)

5、元素转换

  可以看出,在col_2列中的‘3%’及‘5%’均为有效的数值数据,但其类型均为‘str’,不能直接参与数学运算。需遍历df,找出其在df中的位置,将其替换为float型数据。

for i in range(len(df.index)):
    for j in range(len(df.columns)):
        # df中元素各种类型都有,为了方便检测其中是否含有‘%’,将其统一转换为‘str’型
        if ‘%‘ in str(df.iat[i, j]):
            df.iat[i, j] = float(df.iat[i, j].replace(‘%‘, ‘‘)) / 100

原文地址:https://www.cnblogs.com/HL-space/p/10655866.html

时间: 2024-10-09 11:21:19

pandas 对数据帧DataFrame中数据的增删、补全及转换操作的相关文章

pandas 对数据帧DataFrame中数据的索引及切片操作

1.创建数据帧 index是行索引,即每一行的名字:columns是列索引,即每一列的名字.建立数据帧时行索引和列索引都需要以列表的形式传入. import pandas as pd df = pd.DataFrame([[1, 2, 3], [4, 5, 6]], index=['row_0', 'row_1'], columns=['col_0', 'col_1', 'col_2']) 2.获取数据帧的行索引和列索引 2.1 获取行索引 # 以数组形式返回 row_name = df.ind

Eclipse中输入变量会自动补全上屏的解决方法

我自己在启动Eclipse代码补全后输入感觉确实爽多了,但是每次输入变量后一按下空格,编译器会自己帮你写一个很蛋疼的名字,比如你输入了:String mStr后按下空格,它就变成了mString,十分讨厌.下面是正规的解决办法,但是经过我反复折腾,我实在没办法把插件的源码显示到工程中.于是偷个懒去网上下载了已经修改好的jar包,成功搞定. 我自己复制jar包的目录是:D:\Work Appliactions\adt-bundle-windows-x86-20140702\eclipse\plug

mysql中使用tab键补全

在mysql中默认不能使用tab键自动补全.设置自动不全如下: 这里的补全是表名,列名,数据库名.不是数据库中的命令,变量等. 在mysql命令行中,使用\#来暂时启用tab键补全. 在mysql的配置文件my.cnf中的[mysql]区段中添加no-auto-rehash该字段来达到补全,需要重启mysql数据库 可以使用一个mycli的工具.

[转载]启用 VIM 中的 Python 自动补全及提示功能

转载: http://zhongwei-leg.iteye.com/blog/941474 周围的同事不喜欢使用 VIM 写 Python 代码的原因之一就是,VIM 不能像 Visual Studio 一样自动补全和提示.其实,只是VIM 太低调,大家不知道而已. 这里介绍一下 python omni complete, 安装启用之后,是这个样子的: 1. 如何安装 'Python omni complete' plugin. 如果是VIM7.3,不需要再下载 pythoncomplete.v

【嗜血GO笔记】如何在goclipse 中配置代码自动补全。

代码总也不补全,用起来很不爽,但是liteide 的补全却很舒服,看了下 ,发现其实代码提示主要靠的就是gocode.exe这个文件 注意不是godoc.exe哈,有个小伙伴错误设成了godoc.exe半天他也没找到错误在哪. 我们看一下 如何在goeclipse 里面实现代码提示 首先要说明,其实goclipse 已经包含了一个gocode.exe,但是我只想把liteide的所有功能都迁移至goclipse 中, 所以,我选择的是直接借助liteide完成 用eclipse 纯是个人的一个小

editplus中html的自动补全功能

之前一直都是“纯手工”,一个一个符号慢慢敲的,现在编码量大了,自然效率也不能还停留在一个一个慢慢敲的时代. 如何设置editplus中的自动补全功能? 首先在Tools中找到Configure User Tools...,点击File选项下的Settings &&syntax,在File types中选中HTML. 将下面的Auto Completion选项勾选,默认是htmlbar.acp.点击下面的OK就可以了. 怎么使用editplus的自动补全呢? 首先先新建一个HTML页面,当你

远程桌面中Tab键不能补全的解决办法

我们曾在之前的一篇文章中介绍了windows远程连接ubuntu的方法,在成功登陆远程桌面环境之后,发现在终端中Tab键不能自动补齐(但是Ctrl +Tab 可以用,但是需要按下组合键才能补全的话,时间久了确实有点烦),功夫不服苦心人,最后在国外的网站上找到了解决方法,下面给出链接,有兴趣的朋友可以看看:http://ubuntuforums.org/archive/index.php/t-1771058.htmlhttps://answers.launchpad.net/ubuntu/+sou

使用vscode时,如何在.vue文件中使用html代码补全功能

一.在vscode中把这个插件下载了并且启用,然后翻阅插件的ReadMe,我们可以看到如下图得FAQ: 二.settings.json中配置files.associations对象 首先,依次打开"文件 --> 首选项 --> 设置",就会看到settings.json文件了 然后在settings.json中找到"常用设置"里的files.associations对象 然后把鼠标滑到对象的左边,会出现如图所示的一个"编辑"的标志,点

mac-Anaconda中spyder设置自动补全功能

问题:Spyder中有时按tab不会自动补全 python——>Preferences: 设置以下两项: 原文地址:https://www.cnblogs.com/jpr-ok/p/12443979.html