一个很偶然的机会,主动出击挑战一个之前没有尝试过的新东西,在做的过程中需要处理一些csv文件的数据,以下是我总结的一些小方法,希望对和我一样的新手朋友们有所帮助,初次尝试,望路过的朋友有更好的方法可以留言补充,小弟在此谢过~

1. 读取文件的某一列并追加到另一个文件中

import pandas as pd
filename = '/Users/nova.li/Desktop/workspace/对齐数据/6w_risk_date_merge.csv'
df1 = pd.read_csv(filename)
#设置索引从1开始
df1.index = df1.index + 1 #从这个csv文件中读取所要追加到另一个文件的原始文件并取列名
df2 = pd.read_csv('/Users/nova.li/Desktop/workspace/对齐数据/6w_2104_2106.csv')
df1['label'] = df2['label_fpd4']
#输出重写之后的文件,并设置所有列的列名为id,表中的小数位为0
df1.to_csv(filename, index=True, index_label='id',float_format='%.0f')

2.删除csv文件中的某列数据

import pandas as pd
filename = '/Users/nova.li/Desktop/workspace/对齐数据/6w_risk_date_merge.csv'
df = pd.read_csv(filename)
df = df.drop(['md5(mobile)', 'date'], axis=1)

3. 修改指定某列列名

import pandas as pd
filename = '/Users/nova.li/Desktop/workspace/对齐数据/6w_2104_2106_label.csv'
df = pd.read_csv(filename)
df.rename(columns={'label_mob3': 'label'}, inplace=True)
df.to_csv(filename)

4. 查看某一列数值为1的个数

pd.read_csv('/Users/nova.li/Desktop/workspace/对齐数据/6w_2104_2106.csv')['label_mob3'].sum()

5. 替换列数据

import pandas as pd
fname = '/Users/nova.li/Desktop/workspace/对齐数据/6w_2104_2106_done.csv'
df = pd.read_csv(fname)
data = pd.read_csv('/Users/nova.li/Desktop/workspace/对齐数据/6w_2104_2106.csv')
#删除原来的列
df = df.drop(['label'], axis=1)
#新增一列,并将另一个csv文件的某一列添加过来
df['new_label'] = data['label_mob1']
#更改列名
df.rename(columns={'new_label': 'label'}, inplace=True)
df.to_csv(fname, index=False)

6. 按比例切分文件

#安装scikit-learn(sklearn)模块
pip install scikit-learn
import pandas as pd
from sklearn.model_selection import train_test_split
import numpy as np data = pd.read_csv('/Users/nova.li/Desktop/workspace/对齐数据/6w_2104_2106_done2.csv')
train,test = train_test_split(data,test_size=0.3,) #测试集的比例是30%
np.savetxt('/Users/nova.li/Desktop/workspace/对齐数据/6w_2104_2106_train.csv',train,delimiter=",",fmt='%s') #delimiter=“,” 才能一个数据一个格
np.savetxt('/Users/nova.li/Desktop/workspace/对齐数据/6w_2104_2106_test.csv',test,delimiter=",",fmt='%s')

7. 读取某个文件的前多少行

import pandas as pd
fname = '/Users/nova.li/Desktop/workspace/对齐数据/6w_2104_2106_test.csv'
df = pd.read_csv(fname)
df = df.head(43418)
df.to_csv(fname, index=False)

8. 读取某个文件的后多少行

import pandas as pd
fname = '/Users/nova.li/Desktop/workspace/对齐数据/6w_2104_2106_label_mob1_test.csv'
df = pd.read_csv(fname)
df = df.tail(18608)
df.to_csv(fname, index=False)

9. 将某一列数据转化为整数

fname = '/Users/nova.li/Desktop/workspace/对齐数据/predict_res_2e2d6f4f_csv.csv'
df = pd.read_csv(fname)
#重新赋值方式
df['id'] = df['id'].astype('int')
df['model_label'] = df['model_label'].astype('int')
df.to_csv(fname, index=False)

10. 空值填充

import pandas as pd
fname = '/Users/nova.li/Desktop/workspace/对齐数据/predict_res_2e2d6f4f_csv.csv'
df = pd.read_csv(fname)
df.fillna(9999, inplace = True)
df.to_csv(fname, index=False)
#print(df.to_string())

我也不知道我一个做前端的为什么一下子就接触到python的东西了,总而言之,多学点东西总是好的,继续努力,今天也要加油鸭~

Pandas 数据的一些基本操作的更多相关文章

  1. Python的工具包[1] -> pandas数据预处理 -> pandas 库及使用总结

    pandas数据预处理 / pandas data pre-processing 目录 关于 pandas pandas 库 pandas 基本操作 pandas 计算 pandas 的 Series ...

  2. 数据分析与展示——Pandas数据特征分析

    Pandas数据特征分析 数据的排序 将一组数据通过摘要(有损地提取数据特征的过程)的方式,可以获得基本统计(含排序).分布/累计统计.数据特征(相关性.周期性等).数据挖掘(形成知识). .sort ...

  3. pandas小记:pandas数据输入输出

    http://blog.csdn.net/pipisorry/article/details/52208727 数据输入输出 数据pickling pandas数据pickling比保存和读取csv文 ...

  4. mysql(三) 数据表的基本操作操作

    mysql(三) 数据表的基本操作操作 创建表,曾删改查,主键,外键,基本数据类型. 1. 创建表 create table 表名( 列名 类型 是否可以为空, 列名 类型 是否可以为空 )ENGIN ...

  5. Pandas数据排序

    Pandas数据排序 .sort_index() 在指定轴上根据索引进行排序,索引排序后内容会跟随排序 b = pd.DataFrame(np.arange(20).reshape(4,5),inde ...

  6. pandas数据操作

    pandas数据操作 字符串方法 Series对象在其str属性中配备了一组字符串处理方法,可以很容易的应用到数组中的每个元素 t = pd.Series(['a_b_c_d','c_d_e',np. ...

  7. Pandas数据存取

    pd.read_excel('foo.xlsx', 'Sheet1', index_col=None, na_values=['NA']) Pandas数据存取 Pandas可以存取多种介质类型数据, ...

  8. pandas 数据预处理

    pandas 数据预处理 缺失数据处理 csv_data=''' A,B,C,D 1.0,2.0,3.0,4.0 5.6,6.0,,8.0 0.0,11.0,12.0,,''' import pand ...

  9. Pandas数据规整

    Pandas数据规整 数据分析和建模方面的大量编程工作都是用在数据准备上的,有时候存放在文件或数据库中的数据并不能满足数据处理应用的要求 Pandas提供了一组高级的.灵活的.高效的核心函数和算法,它 ...

随机推荐

  1. Struts2之OGNL与ValueStack

    时间:2017-1-12 12:02 --OGNL1.OGNL表达式是什么    OGNL的全称是Object-Graph Navigation Language的缩写,中文名是对象图导航语言,它是一 ...

  2. C++小坑汇总

    std::vector::end, 是构想的下一个push_back位置,并不实际指向vector中任何元素. Returns an iterator referring to the past-th ...

  3. Learning ROS: Roslaunch tips for large projects

    Design tip: Top-level launch files should be short, and consist of include's to other files correspo ...

  4. Learning ROS: Ubuntu16.04下kinetic开发环境安装和初体验 Install + Configure + Navigating(look around) + Creating a Package(catkin_create_pkg) + Building a Package(catkin_make) + Understanding Nodes

    本文主要部分来源于ROS官网的Tutorials. Ubuntu install of ROS Kinetic # Setup your sources.list sudo sh -c 'echo & ...

  5. default错误

    查看根目录发现 修改成index.php可以了

  6. [bug]spring项目通过反射测试私有方法时,注入对象异常

    背景 遇到问题:在进行Spring单元测试编写时,发现被测方法是一个私有方法,无法直接通过注入对象调用 解决思路:首先想到通过反射获取该私有方法的访问权限,并传入注入对象,最终调用对象的私有方法. 出 ...

  7. 如何在RHEL7或CentOS 7系统下修改网卡名称(亲测有效~!)

    亲测有效的更改RHEL7或CentOS 7的网卡名称的方法, 按照以下4步来操作就可以实现! Step 1 :网卡配置文件名称重命名为eth0[root@localhost ~]# ifconfige ...

  8. 为 Memcached 构建基于 Go 的 Operator 示例

    Operator SDK 中的 Go 编程语言支持可以利用 Operator SDK 中的 Go 编程语言支持,为 Memcached 构 建基于 Go 的 Operator 示例.分布式键值存储并管 ...

  9. Java基础(四)——抽象类和接口

    一.抽象类 1.介绍 使用关键字 abstract 定义抽象类. abstract定义抽象方法,只有声明,不用实现. 包含抽象方法的类必须定义为抽象类. 抽象类中可以有普通方法,也可以有抽象方法. 抽 ...

  10. Appium问题解决方案(10)- Original error: Swipe did not complete successfully

    背景 从搜索页面返回首页之后,执行  swipe 滑动操作,但是报错了,如上图 解决方法 只需要在第一次 swipe 之前加个 sleep,强制等待即可 备注 这种解决方案其实不好,强制等待能少用就少 ...