python中使用了pandas的一些操作,特此记录下来:

生成DataFrame

import pandas as pd

data = pd.DataFrame({
'v_id': ["v_1", 'v_2'],
'label': ["a,b", 'e,f,g'],
})
print(data)

得到结果为:

   label v_id
0 a,b v_1
1 e,f,g v_2

按照逗号分隔并拼接

import pandas as pd

data = pd.DataFrame({
'v_id': ["v_1", 'v_2'],
'label': ["a,b", 'e,f,g'],
})
df = data.drop('label', axis=1).join(data['label'].str.split(',', expand=True).stack().reset_index(level=1, drop=True).rename('label'))
print(df)

得到结果为:

  v_id label
0 v_1 a
0 v_1 b
1 v_2 e
1 v_2 f
1 v_2 g

筛选符合条件的行

import pandas as pd

data = pd.DataFrame({
'v_id': ["v_1", 'v_1', "v_2", "v_2","v_2"],
'label': ["a", 'b', "e", "f", "g"],
})
target_label = data.loc[data['label'].isin(["e", "f"])]
print(target_label)

得到结果为:

  v_id label
1 v_2 e
1 v_2 f

筛选不符合条件的行

import pandas as pd

data = pd.DataFrame({
'v_id': ["v_1", 'v_1', "v_2", "v_2","v_2"],
'label': ["a", 'b', "e", "f", "g"],
'num': [1, 2, 3, 4, 5],
}) other_label1 = data[~data['label'].isin(["f", "g"])]
print(other_label1) other_label2 = data.query("num<=3 & label!='b'")
print(other_label2)

得到结果为:

  v_id label
0 v_1 a
0 v_1 b
1 v_2 e label num v_id
0 a 1 v_1
2 e 3 v_2

替换某一列的值

import pandas as pd

data = pd.DataFrame({
'v_id': ["v_1", 'v_1', "v_2", "v_2","v_2"],
'label': ["a", 'b', "e", "f", "g"],
}) df = data.copy()
df.loc[df["label"] != "", 'label'] = "1"
print(df)

得到结果为:

  v_id label
0 v_1 1
0 v_1 1
1 v_2 1
1 v_2 1
1 v_2 1

取某一列转换成list

import pandas as pd

data = pd.DataFrame({
'v_id': ["v_1", 'v_1', "v_2", "v_2","v_2"],
'label': ["a", 'b', "e", "f", "g"],
})
print(data["label"].values.tolist())

得到结果为:

['a', 'b', 'e', 'f', 'g']

按照某一列去重

import pandas as pd

data = pd.DataFrame({
'v_id': ["v_1", 'v_1', "v_2", "v_2","v_2"],
'label': ["a", 'b', "e", "f", "g"],
})
print(data.drop_duplicates(subset=['v_id']))

得到结果为:

  v_id label
0 v_1 a
1 v_2 e

复制dataframe并拼接

data = pd.DataFrame({
'v_id': ["v_1", 'v_1', "v_2", "v_2","v_2"],
'label': ["a", 'b', "e", "f", "g"],
}) data_copy = data.copy()
times = 2
for i in range(times):
data_copy = pd.concat([data_copy,data])
print(data_copy)

得到结果为:

  v_id label
0 v_1 a
0 v_1 b
1 v_2 e
1 v_2 f
1 v_2 g
0 v_1 a
0 v_1 b
1 v_2 e
1 v_2 f
1 v_2 g
0 v_1 a
0 v_1 b
1 v_2 e
1 v_2 f
1 v_2 g

更改某一列类型

data = pd.DataFrame({
'v_id': ["v_1", 'v_1', "v_2", "v_2","v_2"],
'label': ["a", 'b', "e", "f", "g"],
'num': [1.0, 2.0, 3.0, 4.0, 5.0],
})
data["num"] = data[["num"]].astype(int)
print(data)

得到结果为:

  label  num v_id
0 a 1 v_1
1 b 2 v_1
2 e 3 v_2
3 f 4 v_2
4 g 5 v_2

pandas操作的更多相关文章

  1. pandas操作行集锦

    pandas移花接木 数据准备两表: 我们接下来要进行的操作: 增 将两表进行合并 # 把两张表合并,但是这样有问题,索引会重复的进行0-19 students = page_001.append(p ...

  2. pandas操作,感觉不错,复制过来的

    整理pandas操作 本文原创,转载请标识出处: http://www.cnblogs.com/xiaoxuebiye/p/7223774.html 导入数据: pd.read_csv(filenam ...

  3. Python之Pandas操作csv文件dataframe

    # -*- coding: utf-8 -*- # author:baoshan import pandas as pd def main(): aqi_data = pd.read_csv('chi ...

  4. Python Pandas操作Excel

    Python Pandas操作Excel 前情提要 ☟ 本章使用的 Python3.6 Pandas==0.25.3 项目中需要用到excel的文件字段太多 考虑到后续字段命名的变动以及中文/英文/日 ...

  5. Pandas 操作

    一.Series的创建: pd.Series([ 数据 ]) In [17]: import pandas as pd In [18]: import numpy as np In [19]: s = ...

  6. 整理pandas操作

    本文原创,转载请标识出处: http://www.cnblogs.com/xiaoxuebiye/p/7223774.html 导入数据: pd.read_csv(filename):从CSV文件导入 ...

  7. Python openpyxl、pandas操作Excel方法简介与具体实例

    本篇重点讲解windows系统下 Python3.5中第三方excel操作库-openpyxl: 其实Python第三方库有很多可以操作Excel,如:xlrd,xlwt,xlwings甚至注明的数据 ...

  8. pandas操作速查表

    准备工作 import numpy as np import pandas as pd 倒入文件或创建一个数据表 df = pd.DataFrame(pd.read_csv('name.csv',he ...

  9. Pandas操作excel

    读取excel:Pandas库read_excel()参数详解 pandas.read_excel(io,sheet_name = 0,header = 0,names = None,index_co ...

随机推荐

  1. sublime安装AngularJS插件

    sublime能够支持AngularJS开发那绝对是一件很爽的事情.下面我一步步讲解如何为sublime安装AngularJS插件. 1.添加控制包站点 根据你安装sublime 版本不同,在控制台写 ...

  2. 快速EDAS字体嵌入问题

    在用edas向国际会议投稿的时候,往往要检查pdf稿件的格式,例如页边距.行距.字体等.经常碰到的一个问题就是字体未嵌入到文件中.因为大家一般用CTex里面的ps2pdf生成pdf文件,图片中的字往往 ...

  3. CORS(跨域资源共享) 的配置

    http://blog.csdn.net/ohyoyo2014/article/details/24863197 兼容情况: 各种新版本的ie10,firefox,opera,safari,chrom ...

  4. linux释放内存的命令

    释放cache: sync echo 3>/proc/sys/vm/drop_caches 释放swap: sync swapoff -a swapon -a 版权声明:本文为博主原创文章,未经 ...

  5. Python数据库连接池DBUtils.PooledDB

    DBUtils 是一套用于管理数据库连接池的包,为高频度高并发的数据库访问提供更好的性能,可以自动管理连接对象的创建和释放.最常用的两个外部接口是 PersistentDB 和 PooledDB,前者 ...

  6. 在Windows Server 2008 R2下搭建jsp环境(四)-在测试的过程中可能出现的问题

    环境基本部署好了之后,便开始测试,一定要让他经得起"考验",他才会值得你的信赖.Tomcat服务器部署成功的的验证方法(默认端口的情况下): 1.loacalhost:8080 2 ...

  7. JS代码检查工具ESLint

    前面的话 ESLint是一个JavaScript代码静态检查工具,可以检查JavaScript的语法错误,提示潜在的bug,可以有效提高代码质量,维持前端团队高度一致的编码风格.ESLint不但提供一 ...

  8. BZOJ_5249_Luogu_P4364_[2018多省省队联测]_IIIDX_九省联考2018_JLOI2018_线段树

    BZOJ_5249_[2018多省省队联测]IIIDX_线段树 Description [题目背景] Osu听过没?那是Konano最喜欢的一款音乐游戏,而他的梦想就是有一天自己也能做个独特酷炫的音乐 ...

  9. springboot2.x里面访问静态资源的坑

    在spring boot的自定义配置类继承 WebMvcConfigurationSupport 后,发现自动配置的静态资源路径( classpath:/META/resources/,classpa ...

  10. 菜鸟如何反转到资深Web安全工程师

    90后理工男,计算机专业,毕业于985院校,从事Web安全工作,两年多的时间里先后跳槽3家公司,跳槽理由主要有以下几点:加班多.薪资低.工作内容枯燥,不想安于现状,寄希望于通过跳槽找到一个“钱多.活少 ...