pandas重新设置列索引_python数据分析包Pandas(一)
pandas是一个python包,提供快速,灵活和富有表现力的数据结构,旨在使“关系”或“标记”数据的使用既简单又直观。
pandas的两个主要数据结构Series
(1维)和DataFrame
(2维)能处理金融,统计,社会科学和许多工程领域中的绝大多数典型用例。
梳理参考如下链接:
Package overviewpandas.pydata.orgPandas系列 - Pandas教程™www.yiibai.com
一、Series对象的创建与索引
系列(Series
)是能够保存任何类型的数据(整数,字符串,浮点数,Python对象等)的一维标记数组,轴标签统称为索引。
Pandas系列可以使用以下构造函数创建:
pandas.Series( data, index, dtype, copy)
- data:可以使各种形式,如:ndarray、list、dictionary、constants
- index:索引值必须是唯一的,与数据的长度相同。 如果没有索引被传递,默认np.arange(n)。
- dtype:用于数据类型,如果没有,将推断数据类型。
- copy:复制数据,默认为
false
。
创建一个空的系列
import pandas as pd
s = pd.Series()
print(s)
输出为:
Series([], dtype: float64)
从数组ndarray创建
import numpy as np
data = np.array(["a","b","c","d","e"])
s = pd.Series(data)#默认索引时
s_1 = pd.Series(data,index = [3,6,2,4,7])#设置索引参数index
print(s,"n",s_1)
输出为:
0 a
1 b
2 c
3 d
4 e
dtype: object
3 a
6 b
2 c
4 d
7 e
dtype: object
从字典创建一个系列
字典(dict
)可以作为输入传递,如果没有指定索引,则按排序顺序取得字典键以构造索引。 如果传递了索引,索引中与标签对应的数据中的值将被拉出。
dictionary = {'one': 2, 'two': 'wangxinli', 'three': 'liyan', 'four': 'ove', 'five': 'L'}
s = pd.Series(dictionary)#为这只index,默认为字典的键值
s_1 = pd.Series(dictionary,index = ["o","p","q","r","s"])#设置的索引和字典的键值均不一样,可见输出是不存在
s_2 = pd.Series(dictionary,index = ['one', 'two', 'three', 'four', 'e'])#设置的索引和字典的键值部分一样
print(s,"n",s_1,"n",s_2)
输出为:
one 2
two wangxinli
three liyan
four ove
five L
dtype: object o NaN
p NaN
q NaN
r NaN
s NaN
dtype: object one 2
two wangxinli
three liyan
four ove
e NaN
dtype: object
从系列中访问数据
1、系列中的数据可以使用类似于访问ndarray
中的数据来访问
dictionary = {'one': 2, 'two': 'wangxinli', 'three': 'liyan', 'four': 'ove', 'five': 'L'}
s = pd.Series(dictionary)#未设置index,默认为字典的键值
print(s[1])#输出第二行的值
print(s[1:3])#输出第二到第三行的值
print(s[:2])#输出第一到第二行的值
print(s[2:])#输出第三到第五行的值
print(s[::-1])#反向输出
print(s[0:-2])#输出第一到倒数第三个的值
输出为:
wangxinli
two wangxinli
three liyan
dtype: object
one 2
two wangxinli
dtype: object
three liyan
four ove
five L
dtype: object
five L
four ove
three liyan
two wangxinli
one 2
dtype: object
one 2
two wangxinli
three liyan
dtype: object
2、使用标签检索数据
dictionary = {'one': 2, 'two': 'wangxinli', 'three': 'liyan', 'four': 'ove', 'five': 'L'}
s = pd.Series(dictionary)#未设置index,默认为字典的键值
print(s["one"])
print(s[["one","five"]])
输出为:
2
one 2
five L
dtype: object
二、Dataframe对象的创建
dataframe是二维数据结构,即数据以行和列的表格方式排列。
dataframe的功能特点:
- 潜在的列是不同的类型
- 大小可变
- 标记轴(行和列)
- 可以对行和列执行算术运算
函数pandas.DataFrame
pandas.DataFrame( data, index, columns, dtype, copy)
- data:数据采取各种形式,如
ndarray,series,map,lists,dict,constant
和另一个DataFrame
均可。 - index:行标签,如果没有传递索引值,对于行标签,默认索引是
np.arrange(n)
。 - columns:列标签,如果没有传递索引值,对于列标签,默认索引是np.arrange(n)。
- dtype:每列的数据类型。
- copy:默认值为
False
。
创建一个空的dataframe
import pandas as pd
s = pd.DataFrame()
print(s)
输出为:
Empty DataFrame
Columns: []
Index: []
从列表创建dataframe
import pandas as pd
a = [1,2,4,3,"dfg"]
b = [[1,2],["ddf","dfd"],[3,4]]
data_1 = pd.DataFrame(a)
data_2 = pd.DataFrame(b)
print(data_1,"n",data_2)
输出为:
0
0 1
1 2
2 4
3 3
4 dfg 0 1
0 1 2
1 ddf dfd
2 3 4
从ndarrays 、字典来创建dataframe
import numpy as np
import pandas as pd
a = np.array([[1,2,3,45,5],[1,33,42,2,2]])
dictionary = {'one': 2, 'two': 'wangxinli', 'three': 'liyan', 'four': 'ove', 'five': 'L'}
dictionary_1 = {"one":a[0],"two":a[1]}
data_a = pd.DataFrame(a,columns=["1","3","5","7","9"],index = ["aa","d"])
data_dict = pd.DataFrame(dictionary,index = ["dd"])#index必须添加,不然会报错
data_dict1 = pd.DataFrame(dictionary_1)
print(data_a)
print(data_dict)
print(data_dict1)
输出为:
1 3 5 7 9
aa 1 2 3 45 5
d 1 33 42 2 2one two three four five
dd 2 wangxinli liyan ove Lone two
0 1 1
1 2 33
2 3 42
3 45 2
4 5 2
从series以及系列字典来创建
a = pd.Series([1,2,3,4])
b = pd.Series([6,4,"dd","vv"])
c = pd.DataFrame([a,b])
d = pd.DataFrame({"one":a,"two":b})
print(c,"n",d)
输出为:
0 1 2 3
0 1 2 3 4
1 6 4 dd vv one two
0 1 6
1 2 4
2 3 dd
3 4 vv
三、对dataframe行和列的操作
选择一列、增加列
array = np.arange(20).reshape(4,5)
abc = pd.DataFrame(array)
print(abc[2])
print(abc)
abc[5] = [1,2,3,4]
print(abc)
abc[6] = abc[1]+abc[3]
print(abc)
输出为:
0 2
1 7
2 12
3 17
Name: 2, dtype: int320 1 2 3 4
0 0 1 2 3 4
1 5 6 7 8 9
2 10 11 12 13 14
3 15 16 17 18 190 1 2 3 4 5
0 0 1 2 3 4 1
1 5 6 7 8 9 2
2 10 11 12 13 14 3
3 15 16 17 18 19 40 1 2 3 4 5 6
0 0 1 2 3 4 1 4
1 5 6 7 8 9 2 14
2 10 11 12 13 14 3 24
3 15 16 17 18 19 4 34
列的删除,使用drop函数
drop(self, labels=None, axis=0, index=None, columns=None,level=None, inplace=False, errors='raise')
重要参数
- labels : 选择删除的行和列标签。
- axis : {0 or 'index', 1 or 'columns'}, 默认0,0表示删除行,1表示删除列。
- index, columns :直接设置index和columns可以达到设置lables和axis一样的效果。
- inplace : 是否更改原数据
a = abc.drop(labels=[0,2],axis=0)#删除行标签为0和2的行
print(a)
b = abc.drop(labels=[0,2],axis=1)#删除标签为0和2的列
print(b)
abc.drop(labels=[2,3],axis=1,inplace=True)#删除标签2和3的列,并返回给abc
print(abc)
输出为:
0 1 2 3 4 5 6
1 5 6 7 8 9 2 14
3 15 16 17 18 19 4 341 3 4 5 6
0 1 3 4 1 4
1 6 8 9 2 14
2 11 13 14 3 24
3 16 18 19 4 340 1 4 5 6
0 0 1 4 1 4
1 5 6 9 2 14
2 10 11 14 3 24
3 15 16 19 4 34
行选择,添加和删除
可以通过将行标签传递给loc()
函数来选择行。
print(abc)
print(abc.loc[0,1])
print(abc.loc[[0,1]])
print(abc.loc[[0,1],[0,1]])
输出为:
abc0 1 4 5 6
0 0 1 4 1 4
1 5 6 9 2 14
2 10 11 14 3 24
3 15 16 19 4 34
abc.loc[0,1]
1
abc.loc[[0,1]]0 1 4 5 6
0 0 1 4 1 4
1 5 6 9 2 14
abc.loc[[0,1],[0,1]]0 1
0 0 1
1 5 6
按整数位置选择,可以通过将整数位置传递给iloc()
函数来选择行
abc.iloc[1]
abc.iloc[:,[2,3]]
类似于数组切片的操作。
行切片
可以使用:
运算符选择多行。
abc[2:3]表示选取第三行。
附加行
使用append()
函数将新行添加到DataFrame。
append(self, other, ignore_index=False,verify_integrity=False, sort=None)
重要参数
other:DataFrame、series、dict、list这样的数据结构。
ignore_index:默认值为False,如果为True则不使用index标签。
verify_integrity :默认值为False,如果为True当创建相同的index时会抛出ValueError的异常。
sort:boolean,默认是None,该属性在pandas的0.23.0的版本才存在。
pandas重新设置列索引_python数据分析包Pandas(一)相关推荐
- pandas 每一列相加_Python数据分析——Pandas 教程(上)
Python 在数据分析领域里是一门非常强大的语言,在数据分析方面有着出色的生态系统.Pandas 包就是其中之一,它的主要特点是导入和分析数据非常的容易,Pandas 类似 Numpy.Matplo ...
- excel值false 显示否_Python数据分析包pandas中也有Excel的IF这么简单实用函数
此系列文章收录在公众号中:数据大宇宙 > 数据处理 > E-pd 转发本文并私信我"python",即可获得Python资料以及更多系列文章(持续更新的) 经常听别人说 ...
- pandas用众数填充缺失值_python数据分析包|Pandas-02之缺失值(NA)处理
本篇详解pandas中缺失值(Missing data handling)处理常用操作. 缺失值处理常用于数据分析数据清洗阶段:Pandas中将如下类型定义为缺失值: NaN: '', '#N/A', ...
- pandas 取excel 中的某一列_Python数据分析之Pandas读写外部数据文件
点击"机器学习算法与Python实战","置顶"公众号 重磅干货,第一时间送达 阅读目录 1 引言 2 文本文件(txt.csv) 2.1 读取数据 2.2 写 ...
- python中不能使用索引运算的是_Python数据分析之Pandas库(笔记)
Pandas数据结构 pandas有两个基本的数据结构:Series和DataFrame. 1.1 创建Series数据 需要引入pandas模块:import pandas as pd 需要引入Se ...
- c++控制台应用每一列数据如何对齐_懂Excel就能轻松入门Python数据分析包pandas(十六):合并数据...
此系列文章收录在公众号中:数据大宇宙 > 数据处理 >E-pd 转发本文并私信我"python",即可获得Python资料以及更多系列文章(持续更新的) 经常听别人说 ...
- python 统计分析 包_Python 数据分析包:pandas 基础
pandas 是基于 Numpy 构建的含有更高级数据结构和工具的数据分析包 类似于 Numpy 的核心是 ndarray,pandas 也是围绕着 Series 和 DataFrame 两个核心数据 ...
- python数据分析包pandas论文_python数据分析pandas包入门学习(一)pandas数据结构介绍...
本文参考<利用python进行数据分析>的第五章 pandas入门python 1 pandas数据结构介绍 pandas有两种主要的数据结构:series和DataFrame Serie ...
- python pandas dataframe 不显示索引_Python DataFrame 设置输出不显示index(索引)值的方法...
Python DataFrame 设置输出不显示index(索引)值的方法 在输出代码行中,加入"index=False"如下: m_pred_survived.to_csv(&q ...
最新文章
- sqlite DLL load failed
- net5:Theme主题样式的动态变换,在内容页content中操作影响模板页的操作
- qt 字体不随dpi_Windows – QT5字体渲染在各种平台上不同
- 2020牛客国庆集训派对day3 Leftbest
- HttpServletRequest中getAttribute()和getParameter()的区别
- BZOJ 2957 楼房重建-线段树
- python展开 c函数中的宏预处理_C 语言常用的预处理-宏函数
- ElasticSearch Pipeline 为新增数据设置更新时间
- 面试官:为什么 Spring 中的 bean 默认为单例?
- 通信协议:HTTP、TCP、UDP
- 博客园模板--博客园老牛大讲堂
- Java 函数式编程的妙用
- 功能测试用例设计方法,一文带你了解用例设计,再也不担心用例了
- Android网络编程(一次网络请求)
- Transformer模型详解(图解最完整版)
- Windows 7 Boot Updater 如何使用
- 5分钟教你做一个WebView广告过滤器
- centos 中英文输入法切换
- mysql 内存调整_mySQL内存及虚拟内存优化设置
- 移植FreeModbus
热门文章
- 关于Cococs中的CCActionEase(下)
- python遍历数据
- java 程序执行原理
- Asp.net导出Excel报表(解决无网格问题)
- 将ubuntu安装在用剩下的硬盘改装成的移动硬盘时遇到的问题及解决办法
- 解决Linux里面未启用网卡的问题
- 个性化推荐从入门到精通(附推荐产品经理修炼秘籍)
- 关于智能推荐的几点思考
- python install causes ModuleNotFoundError: No module named ‘_swigfaiss‘
- leetcode力扣75. 颜色分类