1 当不知道dataframe的列名,但想要输出该列时,可用iloc()函数实现.

import pandas as pd

a = pd.DataFrame({'k':[3,4,5,6],
'b':[4,4,2,3],
'c':[4,5,6,3]})
print(a.iloc[:,0])
# 0 4
# 1 4
# 2 2
# 3 3
# Name: b, dtype: int64
import pandas as pd

a = pd.DataFrame({'k':[3,4,5,6],
'b':[4,4,2,3],
'c':[4,5,6,3]})
privdsgadhgxhbfgqafehbgfagag 爱共和国 

2 dataframe查看每一列是否有缺失值

 temp = data.isnull().any() #列中是否存在空值
print(type(temp))
print(temp) #若为False,则无缺失值,为True,则有缺失值

3 dataframe 更换列名和添加列名
a.  更换所有的列名  如下将1,2,3的列名全部更换

事实上不需要这么复杂,直接即不需要程序的第一行,直接第二行也可以。前提是赋的列的个数与列数要相等。

参考:https://www.cnblogs.com/hhh5460/p/5816774.html  https://www.cnblogs.com/harvey888/p/6006178.html

 df=df[[0,1,2,3,4,5,6,7,10]]
df.columns=['id','ggid','createtime','sccc','gghyid','sptype','spid','ggzhid','price']
print(ad_operation.columns) # 输出所有列名,注意加s

b. 更换特定列名 https://www.cnblogs.com/hhh5460/p/5816774.html

c. 添加大量空列的方法,当用apply()函数处理dataframe的行时,有时会返回多个值,这时需要添加空列来容纳这些值。

方法: 先新建一个dataframe,只赋列名,再将两个表格融合即可

kkk = pd.DataFrame(columns=['a','s','lsadfk'])
rrr = pd.merge( left= a, right= kkk, on = ['a'], how= 'left')

4 dataframe获取定位特定元素

注意第一个必须是列名,否则报错

print(ad_operation['ggid'][5])
print(ad_operation[['ggid','bid']])  # 当要输出两列值时,要加[]

5 df是dataframe的数据,df.shape表示的dataframe的行列,df.shape[0]是行数,df.shape[1]是列数,df.shape[2]无效

6 dataframe定位行的方法  iloc()是按照index的序值. loc()是按照index的具体值

http://www.cnblogs.com/qingyuanjushi/p/6085307.html

7 dataframe按某一列的条件删除整行的方法

如下使用isin()函数,加上~时表示包含在isin()的删除,否则留下

isin()括号里面应该是个list

 m = chengji[~chengji['mes_Score'].isin([0, -1, -2, -3])]
n = m[~m['mes_sub_name'].isin(['数学','英语','语文'])]

8 dataframe删除某一列的重复元素,默认只留下第一次出现的

 test_sample_quchong = test_sample.drop_duplicates(['ggid'])利用 data.drop_duplicates()#data中一行元素全部相同时才去除可检查dataframe是否有重复的行
 参考:   https://www.cnblogs.com/mahailuo/p/8317178.html
9 dataframe删除某一列或几列
huaxue.drop(['mes_sub_name','mes_sub_id'], axis=1, inplace=True) # inplace为True时,直接在原数据上修改

参考:https://blog.csdn.net/songyunli1111/article/details/79306639

10 sort_value()函数

参数: by要与axis对应,axis=0时by中为列名,axis=1时by为行名。

ascending控制升序降序,True为升序,False为降序。

 ## 参数
DataFrame.sort_values(by, axis=, ascending=True, inplace=False, kind='quicksort', na_position='last')
#### 参数说明
axis:{ or ‘index’, or ‘columns’}, default ,默认按照索引排序,即纵向排序,如果为1,则是横向排序
by:str or list of str;如果axis=,那么by="列名";如果axis=,那么by="行名";
ascending:布尔型,True则升序,可以是[True,False],即第一字段升序,第二个降序
inplace:布尔型,是否用排序后的数据框替换现有的数据框
kind:排序方法,{‘quicksort’, ‘mergesort’, ‘heapsort’}, default ‘quicksort’。似乎不用太关心
na_position : {‘first’, ‘last’}, default ‘last’,默认缺失值排在最后面

参考: https://blog.csdn.net/wendaomudong_l2d4/article/details/80648633

11 DataFrame.info()

可以输出读入表格的一些具体信息。这对于加快数据预处理非常有帮助。

参考:https://blog.csdn.net/sinat_35512245/article/details/79685891

12 shape用法

df是一个dataframe,df.shape输出的是df的行列,df.shape[0]是行数,df.shape[1]是列数,没有df.shpae[2]。

13 value_counts()

用于统计dataframe某一列不同数据的出现次数,其只能统计某一列的,不能整体统计。与unique()函数功能类似,但前者返回的是一个无重复元素的series,并且有series的长度和类型。后者返回的是一个ndarray。

如下计算abc列不同值出现的次数。

print(alldata.abc.value_counts())
print(alldata['abc'].value_counts()) # 这种写法会报错

14 四分位数的求法

nums是list,如下会将list中的数排序后,输出四分位数和中位数.

import numpy as np
np.percentile(nums, (25, 50, 75), interpolation='midpoint')

15 dataframe显示问题,当输出的表格列太多,或元素太长想要显示时,在开头加上即可.

#显示所有列
pd.set_option('display.max_columns', None)
#显示所有行
pd.set_option('display.max_rows', None)
#设置value的显示长度为100,默认为50
pd.set_option('max_colwidth',100)
#
pd.set_option('display.width',1000)



												

dataframe基础的更多相关文章

  1. 大数据入门到精通11-spark dataframe 基础操作

    // dataframe is the topic 一.获得基础数据.先通过rdd的方式获得数据 val ny= sc.textFile("data/new_york/")val ...

  2. pandas | DataFrame基础运算以及空值填充

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是pandas数据处理专题的第四篇文章,我们一起来聊聊DataFrame中的索引. 上一篇文章当中我们介绍了DataFrame数据结构当 ...

  3. Pandas 基础(2) - Dataframe 基础

    上一节我们已经对 Dataframe 的概念做了一个简单的介绍, 这一节将具体看下它的一些基本用法: 首先, 准备一个 excel 文件, 大致内容如下, 并保存成 .csv 格式. 然后, 在 ju ...

  4. pandas学习series和dataframe基础

    PANDAS 的使用 一.什么是pandas? 1.python Data Analysis Library 或pandas 是基于numpy的一种工具,该工具是为了解决数据分析人物而创建的. 2.p ...

  5. pandas之DataFrame创建、索引、切片等基础操作

    知识点 Series只有行索引,而DataFrame对象既有行索引,也有列索引 行索引,表明不同行,横向索引,叫index,0轴,axis=0 列索引,表明不同列,纵向索引,叫columns,1轴,a ...

  6. Spark实战系列目录

    1 Spark rdd -- action函数详解与实战 2 Spark rdd -- transformations函数详解与实战(上) 3 Spark rdd -- transformations ...

  7. 利用Python进行数据分析(8) pandas基础: Series和DataFrame的基本操作

    一.reindex() 方法:重新索引 针对 Series   重新索引指的是根据index参数重新进行排序. 如果传入的索引值在数据里不存在,则不会报错,而是添加缺失值的新行. 不想用缺失值,可以用 ...

  8. 利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍

    一.pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主要目的是为了数据分析.它提供了大量高级的数据结构和对数据处理的方法. pandas 有两个主要的数据结构 ...

  9. pandas基础(1)_Series和DataFrame

    1:pandas简介 Python Data Analysis Library 或 pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的.Pandas 纳入了大量库和一些标 ...

随机推荐

  1. Python之字典方法

    def clear(self): # 清除所有内容 """ D.clear() -> None. Remove all items from D. "&q ...

  2. Apex辅助 - 透视|自瞄|无后

    Apex辅助 - 透视|自瞄|无后 裙:㈥㈠肆㈥②ээ㈠5免费使用供大家参考裙:㈥㈠肆㈥②ээ㈠5免费使用供大家参考裙:㈥㈠肆㈥②ээ㈠5免费使用供大家参考裙:㈥㈠肆㈥②ээ㈠5免费使用供大家参考裙: ...

  3. jQuery对象和普通DOM对象的区别

    1.DOM对象DOM实际上是以面向对象方式描述的文档模型.DOM定义了表示和修改文档所需的对象.这些对象的行为和属性以及这些对象之间的关系.根据W3C DOM规范,DOM是HTML与XML的应用编程接 ...

  4. [.NET] 使用ValidationContext快速进行模型资料的验证

    在进行WebAPI功能开发的时候,一般传统的验证资料是否合法的方式,都是透过if/else的方式进行判断若是使用ValidationContext,就可以省去很多自行撰写程式码的工作 要使用Valid ...

  5. 策略模式(Strategy Model)

    定义:一个类的行为或算法能在运行时被改变,将一组算法封装成一系列对象,通过这些对象灵活改变系统功能: 实现方式: 首先定义个strategy接口,然后创建一系列对象(strategy objects) ...

  6. Zynq系列程序逻辑固化方法

    1.创建一个BOOT镜像 该小节主要讲述zynq平台利用软件套件SDK创建一个可固化BOOT镜像. 1.1  选择Ad9361_Eque1工程,选择Xilinx Tools → Create Boot ...

  7. springboot单元测试自动回滚:@Transactional

    2019-04-21 12:23:14.509 INFO 9384 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - St ...

  8. springboot application.properties 常用完整版配置信息

    从springboot官方文档中扒出来的,留存一下以后应该会用到 # ================================================================= ...

  9. 关于django用户登录认证中的cookie和session

    最近弄django的时候在用户登录这一块遇到了困难,网上的资料也都不完整或者存在缺陷. 写这篇文章的主要目的是对一些刚学django的新手朋友提供一些帮助.前提是你对django中的session和c ...

  10. CodeBlocks无法调试的解决方法

    闲话: 万万没想到我也会写这个东西.一开始软件工程课的时候老师要求我们写博客园,一直都是被动地在写博客.刚刚在重温C语言的时候发现的各种各样问题觉得还是写下来比较好,一旦以后自己又忘了呢……(摊手 顺 ...