1.Pandas对数据某一列删除

1.删除列
import pandas as pd
df = pd.read_csv(file)
#axis=1就是删除列
df.drop(['列名1','列名2'], axis=1) 2.删除记录,也就是行
import pandas as pd
df = pd.read_csv(file)
#axis=0就是删除记录也就是行
df.drop([0,1,3], axis=0)

2.Pandas之修改列名

1.第一种是没有表头,想要添加表头
因为csv文件是没有表头的,但是默认会把第一行作为表头,而实际上可能第一行就是我们的数据,不能够丢失。
所以要做read_csv函数参数加上header=None,然后再进行保存文件,这样系统就会加上0,1这样的表头了,再次打开,就可以使用rename函数进行表头的更改了。
import pandas as pd
data2 = pd.read_csv('D:/transpond_data_1.csv')
data2.head()
Out:
0 1
0 mrMzW0lLIA 0
1 mqJrVB2hb6 0
2 m7nJFCgLiK 0
3 mSFZpU8qVB 0
4 mjBQVsjogW 0
上面这个已经是保存后的有表头的文件了,可以看到就是0,1默认。
df = pd.DataFrame(data2)
df = df.rename(columns={'0':'mid_c','1':'num'})
print(df)
Out:
mid_c num
0 mrMzW0lLIA 0
1 mqJrVB2hb6 0
2 m7nJFCgLiK 0
3 mSFZpU8qVB 0
4 mjBQVsjogW 0
... ... ...
1619147 mdO38FApFD 0
1619148 mNlc2caNpk 0
1619149 mkbybukSaa 0
1619150 mTStAdjFQt 0
1619151 mA3atazmJ6 0
最后再进行保存文件
df = pd.DataFrame(df,columns=['mid_c','num'])
print(df)
df.to_csv('D:\\transpond_data.csv',index=False,encoding='utf-8')
已经改成功了。 2.第二种是有表头直接进行改表头
可以直接打开文件,进行rename函数的使用,最后进行保存,省去了没有表头,进行系统默认添加表头这一步。

3.pandas操作csv多个列,生成新的列

import pandas as pd
df = pd.read_csv(file)
df.eval('new1 = 气温 + 湿度 + PM2P5' , inplace=True)
#inplace这个参数表示是否在原数据上进行操作
这样new1这一列就是通过该文件中的其他几列通过运算得出的新列,直接添加在该文件上。 df.query("age==24")
这样就可以把列age中等于24的选出来了。
#注意:query后面只支持string形式的值,而‘age’==24返回的是一个bool类型,结果不是true就是false,所以需要进行如上操作"age==24",才可返回正确结果

4.pandas去除文件中的重复项

DataFrame.drop_duplicates(subset=None, keep='first', inplace=False)
  • subset : column label or sequence of labels, optional

    用来指定特定的列,默认所有列
  • keep : {‘first’, ‘last’, False}, default ‘first’

    删除重复项并保留第一次出现的项
  • inplace : boolean, default False

    是直接在原来数据上修改还是保留一个副本
df.drop_duplicates('B','first',inplace = True)
#表示删除B列中重复的项,first保留第一次出现的项,在原数据上进行操作。

5.pandas之拼接函数merge()

  • pandas中的merge()函数类似于SQL中join的用法,可以将不同数据集依照某些字段(属性)进行合并操作,得到一个新的数据集。

  • 用法

DataFrame1.merge(DataFrame2, how=‘inner’, on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=False, suffixes=(’_x’, ‘_y’))

参数	说明
how 默认为inner,可设为inner/outer/left/right
on 根据某个字段进行连接,必须存在于两个DateFrame中(若未同时存在,则需要分别使用left_on和right_on来设置)
left_on 左连接,以DataFrame1中用作连接键的列
right_on 右连接,以DataFrame2中用作连接键的列
left_index 将DataFrame1行索引用作连接键
right_index 将DataFrame2行索引用作连接键
sort 根据连接键对合并后的数据进行排列,默认为True
suffixes 对两个数据集中出现的重复列,新数据集中加上后缀_x,_y进行区别
  • 用例
#利用字典dict创建数据框
dataDf1=pd.DataFrame({'lkey':['foo','bar','baz','foo'],
'value':[1,2,3,4]})
dataDf2=pd.DataFrame({'rkey':['foo','bar','qux','bar'],
'value':[5,6,7,8]})
print(dataDf1)
print(dataDf2)
>>>
lkey value
0 foo 1
1 bar 2
2 baz 3
3 foo 4 rkey value
0 foo 5
1 bar 6
2 qux 7
3 bar 8 #inner链接
dataLfDf=dataDf1.merge(dataDf2, left_on='lkey',right_on='rkey')
>>>
lkey value_x rkey value_y
0 foo 1 foo 5
1 foo 4 foo 5
2 bar 2 bar 6
3 bar 2 bar 8 #Right链接
dataDf1.merge(dataDf2, left_on='lkey', right_on='rkey',how='right')
>>>
lkey value_x rkey value_y
0 foo 1.0 foo 5
1 foo 4.0 foo 5
2 bar 2.0 bar 6
3 bar 2.0 bar 8
4 NaN NaN qux 7 #Outer链接
dataDf1.merge(dataDf2, left_on='lkey', right_on='rkey', how='outer')
>>>
lkey value_x rkey value_y
0 foo 1.0 foo 5.0
1 foo 4.0 foo 5.0
2 bar 2.0 bar 6.0
3 bar 2.0 bar 8.0
4 baz 3.0 NaN NaN
5 NaN NaN qux 7.0

Pandas之csv文件对列行的相关操作的更多相关文章

  1. 理解CSV文件以及ABAP中的相关操作

    在很多ABAP开发中,我们使用CSV文件,有时候,关于CSV文件本身的一些问题使人迷惑.它仅仅是一种被逗号分割的文本文档吗? 让我们先来看看接下来可能要处理的几个相关组件的词汇的语义. Separat ...

  2. 使用Pandas读取CSV文件

    使用Pandas读取CSV文件 import pandas as pd csv_data = pd.read_csv('birth_weight.csv') # 读取训练数据 print(csv_da ...

  3. 使用pandas读取csv文件和写入文件

    这是我的CSV文件 读取其中得tempo这一列 import pandas as pd #导入pandas包 data = pd.read_csv("E:\\毕设\\情感识别\\Music- ...

  4. pandas 读csv文件 TypeError: Empty 'DataFrame': no numeric data to plot

    简单的代码,利用pandas模块读csv数据文件,这里有两种方式,一种是被新版本pandas遗弃的Series.from_csv:另一种就是pandas.read_csv 先说一下问题这个问题就是在读 ...

  5. 使用pandas导入csv文件到MySQL

    之前尝试过用命令行来解决csv文件导入到MySQL这个问题,没想到一直没有成功.之后会继续更新的吧,现在先用pandas来解决这个问题,虽然会复杂一点,但至少能用. 例子是导入movielens的ra ...

  6. Oracle数据库导入csv文件(sqlldr命令行)

    1.说明 Oracle数据库导入csv文件, 当csv文件较小时, 可以使用数据库管理工具, 比如DBevaer导入到数据库, 当csv文件很大时, 可以使用Oracle提供的sqlldr命令行工具, ...

  7. [Python]-pandas模块-CSV文件读写

    Pandas 即Python Data Analysis Library,是为了解决数据分析而创建的第三方工具,它不仅提供了丰富的数据模型,而且支持多种文件格式处理,包括CSV.HDF5.HTML 等 ...

  8. pandas读取csv文件中文乱码问题

    1.为什么会出现乱码问题,用什么方式编码就用什么方式解码,由于csv不是用的utf-8编码,故不能用它解码. 常用的编码方式有 utf-8,ISO-8859-1.GB18030等. 2.中文乱码原因: ...

  9. php生成csv文件并提供下载及相关注意事项

    1.生成文件过程略,只要逗号分割就可以了 2.提供下载加上如下代码: header("Content-type: application/octet-stream"); heade ...

随机推荐

  1. 探索FFmpeg

    Part1 :FFmpeg简介 FFmpeg定义 FFmpeg是一款音视频编解码工具,为开发者提供了大量音视频处理接口. FF指的是"Fast Forward" FFmpeg历史 ...

  2. 集成Spring-Boot与gRPC,grpc-spring-boot-starter

    项目地址:grpc-spring-boot-starter grpc是一个出身名门的RPC框架,性能高,灵活度高,支持多语言. 支持多语言,如果你的项目在使用多种语言做开发,非常推荐使用. 作为Jav ...

  3. Windows下使用grep命令

    一.可供选择的工具列表: Grep for Windows – 轻量级选项 GNU utilities for Win32 – 本地港口 Cash – 重量轻,建于Node.js之上 Cygwin – ...

  4. nginx 配置处理静态资源

    前言:在一些中大型的网站中,都会专门配置一个处理静态资源的服务,下面我们来用NGINX实战配置下 配置静态资源的目的是为了加速静态资源的访问速度 比较简单,下面直接上配置了 以上就是文章内容的全部了

  5. c#ADO.NET 执行带参数及有返回数据

    直接上代码,这个过程中有个数据SqlDataReader转为 DataTable的过程,当中为什么这样,是应为我直接绑定DataSource的时候没有数据,网人家说直接绑定但是没效果,我就转换了一下. ...

  6. 一些质量极高的project-based tutorials

    <let's build a simple xxx> build your own lisp ★ Crafting Interpreters (学生版)Implementing Funct ...

  7. vue单页面应用中动态修改title

    https://www.jianshu.com/p/b980725b62e8 https://www.npmjs.com/package/vue-wechat-title 详细信息查看:vue-wea ...

  8. element ui DatePicker 禁用当前日之前的时间

    <el-date-picker style="width:195px" value-format="yyyy-MM-dd" v-model="f ...

  9. ApiPost(中文版postman)如何发送一个随机数或者时间戳?

    什么是ApiPost内建变量:ApiPost提供了5个内建变量,如下: {{$guid}} //生成GUID {{$timestamp}} //当前时间戳 {{$microTimestamp}} // ...

  10. 个人项目 python实现

    一.  github地址:https://github.com/zjh1234562/WC 二 . PSP表格 PSP2.1 Personal Software Process Stages 预估耗时 ...