1、读取csv

import pandas as pd
df = pd.read_csv('路径/py.csv')

2、取行号

index_num = df.index

举个例子:

import pandas as pd

df = pd.read_csv('./IP2LOCATION.csv',encoding= 'utf-8')
index_num = df.index
print(index_num)

3、取出行

import pandas as pd

df = pd.read_csv('./IP2LOCATION.csv',encoding= 'utf-8',header=None)
# print(type(df))
df.columns = ['a','b','c','d','e','f'] # 获取行数
# index_num = df.index
# print(index_num) # 取出某一行
# row_data_1 = df.iloc[0]
# row_data_2 = df.iloc[[0]] # 取出连续的行
# row_data_3 = df.iloc[0:2]
# row_data_4 = df[0:2] # 取出不连续的行
# row_data_5 = df.iloc[[0,2]] # print(row_data_5)

只取一行

可以使用df.iloc[行号],得到的是series

也可以使用df.iloc[[行号]],得到的是dataframe

row_data_1 = df.iloc[0] # pandas series
row_data_2 = df.iloc[[0]] # dataframe

loc是显式的索引,默认第一行的行号为1,行号从1计数

iloc是隐式的索引,默认第一行的行号为0,行号从0计数

row_data_1

row_data_2

取连续的几行

可以用df.iloc[行号:行号],也可以用df[行号:行号],得到的都是dataframe

row_data_3 = df.iloc[0:2]
row_data_3 = df[0:2]

row_data_3

row_data_4

取出不连续的几行

使用df.iloc[[行号,行号]],特别注意是两个方括号,中间是逗号,得到的是dataframe

row_data_5 = df.iloc[[0,2]]

row_data_5

4、取出列

import pandas as pd

df = pd.read_csv('./IP2LOCATION.csv',encoding= 'utf-8',header=None)
# print(type(df))
df.columns = ['a','b','c','d','e','f'] # 只取一列
# col_data_1 = df['a'] # 单独一列是个series
# col_data_2 = df.loc[:,'a'] # 同上,但比较复杂,一般不用
# col_data_3 = df.iloc[:,0] # 同上,可以在不知道列名的时候用
#
# col_data_4 = df[['a']] # 单独一列是个df
# col_data_5 = df.loc[:,['a']] # 同上,但比较复杂,一般不用
# col_data_6 = df.iloc[:,[0]] # 同上,可以在不知道列名的时候用
# print(col_data_4) # 获取指定的几列
# cols_data_1 = df[['a','b']] # DataFrame, 指定某几列,直接用列名
# cols_data_2 = df.loc[:,['a','b']] # 同上,但比较复杂,一般不用
# cols_data_3 = df.iloc[:,[0,2]] # 同上,可以在不知道列名的时候用
# print(cols_data_1) # 获取指定的连续列
# cols_data_4 = df.loc[:,'a':'d'] # 指定连续列,用列名
# cols_data_5 = df.iloc[:,0:4] # 指定连续列,用数字
# print(cols_data_4)

只取一列

col_data_1 = df['a']    # 单独一列是个series
col_data_2 = df.loc[:,'a'] # 同上,但比较复杂,一般不用
col_data_3 = df.iloc[:,0] # 同上,可以在不知道列名的时候用

以上三种均为只取一列的操作,并且是等效的,获取的都是series类型

下面三种也是等效的,但是获取的是dataframe类型

col_data_4 = df[['a']]  # 单独一列是个df
col_data_5 = df.loc[:,['a']] # 同上,但比较复杂,一般不用
col_data_6 = df.iloc[:,[0]] # 同上,可以在不知道列名的时候用

取指定的某几列

cols_data_1 = df[['a','b']]    # DataFrame, 指定某几列,直接用列名
cols_data_2 = df.loc[:,['a','b']] # 同上,但比较复杂,一般不用
cols_data_3 = df.iloc[:,[0,2]] # 同上,可以在不知道列名的时候用

获取指定的连续几列

cols_data_4 = df.loc[:,'a':'d']  # 指定连续列,用列名
cols_data_5 = df.iloc[:,0:4] # 指定连续列,用数字

5、取指定行和列

import pandas as pd

df = pd.read_csv('./IP2LOCATION.csv',encoding= 'utf-8',header=None)
# print(type(df))
df.columns = ['a','b','c','d','e','f'] # 获取指定行列
# 第一种,列索引用数字表示
# data_1 = df.iloc[[1,3],[0]]
# data_2 = df.iloc[[1,3],0]
# data_3 = df.iloc[[1,3],1:3]
# data_4 = df.iloc[[1,3],[1,3]]
# print(data_4)
# 第二种,列索引直接引用列名
# data_5 = df.loc[1,['a','d']]
# data_6 = df.loc[[1],['a','d']]
# data_7 = df.loc[[1,3],'a':'d']
# data_8 = df.loc[[1,3],['a','d']]
# print(data_8)

列索引用数字表示

第一种情况是列索引用数字表示, df.iloc[行索引表达,列索引表达],规则跟上面行索引一模一样。

data_1 = df.iloc[[1,3],[0]]

data_2 = df.iloc[[1,3],0]  # series

data_3 = df.iloc[[1,3],1:3]

data_4 = df.iloc[[1,3],[1,3]]

列索引直接引列名

第二种情况是列索引直接引列名(行索引不存在这个问题,因为pandas没有所谓'行名'),就要用df.loc[行索引,列名索引。

data_5 = df.loc[1,['a','d']] # series

data_6 = df.loc[[1],['a','d']]

data_7 = df.loc[[1,3],'a':'d']

data_8 = df.loc[[1,3],['a','d']]

使用pandas库实现csv行和列的获取的更多相关文章

  1. POI教程之第二讲:创建一个时间格式的单元格,处理不同内容格式的单元格,遍历工作簿的行和列并获取单元格内容,文本提取

    第二讲 1.创建一个时间格式的单元格 Workbook wb=new HSSFWorkbook(); // 定义一个新的工作簿 Sheet sheet=wb.createSheet("第一个 ...

  2. python的pandas库读取csv

    首先建立test.csv原始数据,内容如下 时间,地点 一月,北京 二月,上海 三月,广东 四月,深圳 五月,河南 六月,郑州 七月,新密 八月,大连 九月,盘锦 十月,沈阳 十一月,武汉 十二月,南 ...

  3. 用pandas库对csv文件中的文本数据进行分析处理

    #数据分析 import pandas import csv old_path = r'd:\2000W\200W-400W.csv' f = open(old_path,'r',encoding=' ...

  4. Python之文件读写(csv文件,CSV库,Pandas库)

    前言 一.Python文件读取 二.读取CSV文件 一.Python文件读取 1. open函数是内置函数之with操作 - 关于路径设置的问题斜杠设置成D:\\文件夹\\文件或是D:/文件夹/文件 ...

  5. Python之使用Pandas库实现MySQL数据库的读写

      本次分享将介绍如何在Python中使用Pandas库实现MySQL数据库的读写.首先我们需要了解点ORM方面的知识. ORM技术   对象关系映射技术,即ORM(Object-Relational ...

  6. python做数据分析pandas库介绍之DataFrame基本操作

    怎样删除list中空字符? 最简单的方法:new_list = [ x for x in li if x != '' ] 这一部分主要学习pandas中基于前面两种数据结构的基本操作. 设有DataF ...

  7. Pandas库常用函数和操作

    1. DataFrame 处理缺失值  dropna() df2.dropna(axis=0, how='any', subset=[u'ToC'], inplace=True) 把在ToC列有缺失值 ...

  8. python pandas库——pivot使用心得

    python pandas库——pivot使用心得 2017年12月14日 17:07:06 阅读数:364 最近在做基于python的数据分析工作,引用第三方数据分析库——pandas(versio ...

  9. 建议42:使用pandas处理大型CSV文件

    # -*- coding:utf-8 -*- ''' CSV 常用API 1)reader(csvfile[, dialect='excel'][, fmtparam]),主要用于CSV 文件的读取, ...

随机推荐

  1. C++多线程队列实现

    C++多线程队列实现 C++多线程队列学习 介绍 在项目中,进行多线程队列实现是一个比较麻烦的事, 找到了一个实现比较好的多线程队列实现, 自己做了一点修改更加适应自己的项目, 记录下来, 有需要的自 ...

  2. JDK11的重要新特性

    文章目录 JDK11发布啦 Oracle不再提供JRE和Server JRE下载 删除部署工具 JavaFX不再包含在JDK中 删除Java EE和CORBA模块 JDK11发布啦 JDK11 在20 ...

  3. 使用IBM Blockchain Platform extension开发你的第一个fabric智能合约

    文章目录 安装IBM Blockchain Platform extension for VS Code 创建一个智能合约项目 理解智能合约 打包智能合约 Local Fabric Ops 安装智能合 ...

  4. Scala的自定义类型标记

    Scala的自定义类型标记 Scala中有很多千奇百怪的符号标记,看起来是那么的独特,就像是一杯dry martini-好像黑夜中的萤火虫,那么耀眼,那么出众. 好了言归正传,这一篇文章我们会讲一下S ...

  5. SpringCloudAlibaba实战教程系列

    一.简介 Spring Cloud Alibaba 致力于提供微服务开发的一站式解决方案.此项目包含开发分布式应用服务的必需组件,方便开发者通过 Spring Cloud 编程模型轻松使用这些组件来开 ...

  6. unix域源码解析

    首先我们先要创建一个用于通信的结构unix_proto_data ,并初始化某些字段 static int unix_proto_create(struct socket *sock, int pro ...

  7. 关于fastjson在序列化成JSON串时字段增加的问题

    今天在项目中遇到控制器中返回的对象经过fastjsonMessageConverter转换后,前台收到的json中多了一个字段A的问题.而返回的这个对象中根本就没有定义这个字段A. 查了好久才发现对象 ...

  8. rabbitmq启动时出错epmd error for host

    centos7环境下新装rabbitmq,第一次启动时发现出错:ERROR: epmd error for host "****":XXXXXXX 检查发现当前机器的名称为 1  ...

  9. Python基础02 变量

    Python中的变量有两个特点: 1. 无需声明 a = 1 2. 不与类型绑定 a = 1 a = 'hello world' 变量名只是内存中具体对象的一个引用(reference). 对于 a ...

  10. 区间dp 例题

    D - 石子合并问题--直线版 HRBUST - 1818 这个题目是一个区间dp的入门,写完这个题目对于区间dp有那么一点点的感觉,不过还是不太会. 注意这个区间dp的定义 dp[i][j] 表示的 ...