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. 关于wepy小程序图片显示问题

    如果图片资源在本地,用background-image 是无法找到本地资源的,只能通过image标签用src进行引入: 图片资源在服务器上,用背景图片和image进行引入,在安卓真机上测试是没有问题的 ...

  2. 明解C语言 入门篇 第十章答案

    练习10-1 #include <stdio.h> void adjust_point(int*n) { ) *n = ; ) *n = 0; } int main() { int x; ...

  3. windows 的一些快捷键

    https://www.zhihu.com/question/276786944/answer/698967240 1.新建文件夹 Ctrl  + Shift + N        或者鼠标右键 然后 ...

  4. SQLServer查看分区表详细信息

    SQL查看分区内记录个数,常规方法需要知道分区函数然后再显示,网上看到一个一句话显示的方法 ), ps.name ) as partition_scheme, p.partition_number, ...

  5. Android模拟器太慢怎么办?使用微软的VS模拟器

    开发过android的人都知道,android模拟器非常的慢,推荐使用微软的VS模拟器. (1)到 https://visualstudio.microsoft.com/zh-hans/vs/msft ...

  6. form.submit()提交后返回数据的处理

    form.submit()发送请求一般是单向的,如果需要取返回的数据,一般会发送ajax请求,但是如果form中有附件呢?(以后有时间给大家分享ajax上传附件的功能),确实需要返回数据来知道该功能是 ...

  7. 基于DockerSwarm 部署InfluxDB并使用JAVA操作

    Docker中部署InfluxDB 1.运行容器 $ docker run --rm \ -e INFLUXDB_DB=db0 -e INFLUXDB_ADMIN_ENABLED=true \ -e ...

  8. babel plugin和presets是什么,怎么用?

    https://www.fullstackreact.com/articles/what-are-babel-plugins-and-presets/ 当开发react或者vuejs app时,开发者 ...

  9. Filco圣手二代双模蓝牙机械键盘的连接方法

    常规方法 确认键盘的电源接通. 同时按下「Ctrl」+「Alt」+「Fn」执行装置切换模式.配对LED灯(蓝)和低电量显示LED灯(红)约同时亮10秒左右. 想移除已登录的装置时,请从「蓝牙装置登录/ ...

  10. 2019 博盾习言java面试笔试题 (含面试题解析)

      本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.博盾习言等公司offer,岗位是Java后端开发,因为发展原因最终选择去了博盾习言,入职一年时间了,也成为了面 ...