精华内容
下载资源
问答
  • Pandas判断dataframe是否为空 目录 Pandas判断dataframe是否为空 #仿真数据 #查看dataframe是否为空 ​#删除dataframe的数据列后查看dataframe是否为空 #全nan值的dataframe是否为空 ​#全nan值的dataframe...
    展开全文
  • 一、pandas pandas 是基于NumPy 的一种工具,该工具是解决数据分析任务而创建的。Pandas 纳入了大量库和...dataframe.empty加if条件判断文件是否为空,如果返回的dataframe为空,可能导致某些逻辑错误。 data = p

    一、pandas

    pandas 是基于NumPy 的一种工具,该工具是为解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。

    二、if条件判断DataFrame是否为空

    dataframe.empty加if条件判断文件是否为空,如果返回的dataframe为空,可能导致某些逻辑错误。

    data = pd.read_csv(filename, skiprows=1, header=None, error_bad_lines=False)
    
    if data.empty:
         do empty
    else:
         do not empty
    data = pd.read_csv(filename, skiprows=1, header=None, error_bad_lines=False)
    if not data.empty:
        do not empty
    else:
        do empty

    三、DataFrame取某一列

    # one method
    dataframe[b][dataframe[a]==1].values[0]
    
    
    # two method
    dataframe[dataframe[a]==1][b].values[0]

    三、DataFrame按行按列遍历的方式

    DataFrame是一种矩阵形式,所有的行名保存在index里,列名保存在columns里。如下方式可以创建一个DataFrame:

    import pandas as pd
    import numpy as np
    
    # 行数*列数要与数据个数一致
    >>> df = pd.DataFrame(np.arange(12).reshape(3, 4), index = ['row1', 'row2', 'row3'], columns=['col1', 'col2','col3'])
    Traceback (most recent call last):
      File "/root/miniconda3/lib/python3.6/site-packages/pandas/core/internals.py", line 4857, in create_block_manager_from_blocks
        placement=slice(0, len(axes[0])))]
      File "/root/miniconda3/lib/python3.6/site-packages/pandas/core/internals.py", line 3205, in make_block
        return klass(values, ndim=ndim, placement=placement)
      File "/root/miniconda3/lib/python3.6/site-packages/pandas/core/internals.py", line 125, in __init__
        '{mgr}'.format(val=len(self.values), mgr=len(self.mgr_locs)))
    ValueError: Wrong number of items passed 4, placement implies 3
    
    During handling of the above exception, another exception occurred:
    
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "/root/miniconda3/lib/python3.6/site-packages/pandas/core/frame.py", line 379, in __init__
        copy=copy)
      File "/root/miniconda3/lib/python3.6/site-packages/pandas/core/frame.py", line 536, in _init_ndarray
        return create_block_manager_from_blocks([values], [columns, index])
      File "/root/miniconda3/lib/python3.6/site-packages/pandas/core/internals.py", line 4866, in create_block_manager_from_blocks
        construction_error(tot_items, blocks[0].shape[1:], axes, e)
      File "/root/miniconda3/lib/python3.6/site-packages/pandas/core/internals.py", line 4843, in construction_error
        passed, implied))
    ValueError: Shape of passed values is (4, 3), indices imply (3, 3)
    
    >>> df = pd.DataFrame(np.arange(12).reshape(3, 4), index = ['row1', 'row2', 'row3'], columns=['col1', 'col2', 'col3', 'col4'])
    >>> 
    >>> df
          col1  col2  col3  col4
    row1     0     1     2     3
    row2     4     5     6     7
    row3     8     9    10    11
    
    >>> df.index
    Index(['row1', 'row2', 'row3'], dtype='object')
    >>> 
    >>> df.columns
    Index(['col1', 'col2', 'col3', 'col4'], dtype='object')

    在这里插入图片描述

    iteritems(): 按列遍历,将DataFrame的每一列迭代为(列名, Series)对,可以通过row[index]对元素进行访问

    iterrows(): 按行遍历,将DataFrame的每一行迭代为(index, Series)对,可以通过row[name]对元素进行访问

    itertuples(): 按行遍历,将DataFrame的每一行迭代为元祖,可以通过row[name]对元素进行访问,比iterrows()效率要高

    >>> import pandas as pd
    >>> 
    >>> pdd = [{'c1':10, 'c2':100}, {'c1':11, 'c2':111}, {'c1':22, 'c2':222}]
    >>> 
    >>> print(type(pdd))
    <class 'list'>
    >>> 
    >>> df = pd.DataFrame(pdd)
    >>> 
    >>> print(df)
       c1   c2
    0  10  100
    1  11  111
    2  22  222
    >>> print(type(df))
    <class 'pandas.core.frame.DataFrame'>

    按列遍历iteritems()用法:

    # index--列名
    >>> for index, row in df.iteritems():
    ...     print(index)
    ... 
    c1
    c2
    
    # row--某一列, row[0]某一列的第一行
    >>> for index, row in df.iteritems():
    ...     print(row[0], row[1], row[2])
    ... 
    10 11 22
    100 111 222

    按行遍历iterrows()用法:

    # index-行号
    >>> for index, row in df.iterrows():
    ...     print(index)
    ... 
    0
    1
    2
    
    # 某一行通过列名name访问对应的元素
    >>> for index, row in df.iterrows():
    ...     print(row['c1'], row['c2'])
    ... 
    10 100
    11 111
    22 222

    按行遍历itertuples()用法:

    # getattr(row, 'name')得到某行的元素
    >>> for row in df.itertuples():
    ...     print(getattr(row, 'c1'), getattr(row, 'c2'))
    ... 
    10 100
    11 111
    22 222

    引用

    【1】https://pandas.pydata.org/

    展开全文
  • python pandas判断dataframe是否为空

    千次阅读 2021-03-06 22:05:53
    使用a.empty返回bool值 def get_index_code(name): index_list=pro.index_basic() index_code=index_list[index_list['name']==name] empty_dataframe=pd.DataFrame() if index_code.empty: ...

    使用a.empty返回bool值

    def get_index_code(name):
        index_list=pro.index_basic()
        index_code=index_list[index_list['name']==name]
        empty_dataframe=pd.DataFrame()
        if index_code.empty:
            return 'lalala'
        print(index_code)
        return list(index_code['ts_code'])[0]
    get_index_code('laala')
    
    展开全文
  • I have an if statement where it checks if the data frame is not empty. The way I do it is the following:if dataframe.empty:passelse:#do somethingBut really I need:if dataframe is not empty:#do somethi...

    I have an if statement where it checks if the data frame is not empty. The way I do it is the following:

    if dataframe.empty:

    pass

    else:

    #do something

    But really I need:

    if dataframe is not empty:

    #do something

    My question is - is there a method .not_empty() to achieve this? I also wanted to ask if the second version is better in terms of performance? Otherwise maybe it makes sense for me to leave it as it is i.e. the first version?

    解决方案

    Just do

    if not dataframe.empty:

    # insert code here

    The reason this works is because dataframe.empty returns True if dataframe is empty. To invert this, we can use the negation operator not, which flips True to False and vice-versa.

    展开全文
  • I have an if statement where it checks if the data frame is not empty. The way I do it is the following:if dataframe.empty:passelse:#do somethingBut really I need:if dataframe is not empty:#do somethi...
  • pandas空数据处理

    2020-05-24 12:50:27
    有些实际数据往往为空,这时候需要指定一类,比如“other”,也有其他插值方法,比如取相邻的类别,都有瑕疵。 本文暂指定“other” 1-取df的其中几行数据,即便是一行数据,比如第100行,也要有:,此时index...
  • 在遍历文件夹中的数据时,会遇到文件为空的情况,此时需要判断文件是否为空。文件导入一般是用pandas吧,那就是数据框的格式,也就是要判断数据是否为空。如下: # df数据框 if df.empty: pass else: do ...
  • DataFrame用loc函数选择多列后组成的数据还是Dataframe,选取一列组成的数据是Series(备注:代码注释“#”后运行结果)。 lat=sim_poi.loc[sim_poi.station == '上海火车站','gps_lat'] print(lat) # 188 31....
  • 创建DataFrame结构数据: df=DataFrame(data=np.random.randint(0,150,size=(100,50)),index=np.arange(100,200),columns=['Python','En','Math','Physics','Chen']) ...#判断df中是否有空数据 df.isnull().any()#...
  • Pandas空数据的处理

    千次阅读 2020-02-25 09:39:23
    原文地址 分类目录——Pandas 导入支持包 ...生成测试数据 dates = pd.date_range('20200220', periods=6) df = pd.DataFrame(np.arange(24).reshape((6,4)),index=dates, columns=['A','B','C'...
  • ') 请教各位,我按着学习教程来写的代码,目的: 提取people中的字段,判断表头为空后,定义表头,并将ID设置索引; 最后将数据另存于output表格中,运行后报错,请各位指点下哪错了,谢谢~ --------------------...
  • pandas -V 0.25.3 numpy -V 1.17.4 python -V 3.8.0 生成假数据 import pandas as pd import numpy as np # 处理丢失数据 #创建DataFrame dates = pd.date_range('20191227',periods=6) df = pd.DataFrame(np.a...
  • 一列的单元格为空。 例如,以下是该列的频率输出,32320条记录的"租户"值缺失。1234567891011In [67]: value_counts(Tenant,normalize=False)Out[67]:32320Thunderhead 8170Big Data Others ...
  • pandas 空数据处理和数据过滤

    千次阅读 2018-04-16 14:58:19
    1.pandas数据过滤import pandas as pd from pandas import DataFrame,Series import numpy as np dict1 = {'age':[12,23,34,45], 'name':['小宁','小红','小兰','小花'], 'sex':['男','女','男','女']} df1 = pd....
  • 有时候需要对Series中的每个元素进行判断,然后做下一步逻辑处理 1、Series是数值类型的时候;里面有空值(np.nan);value_counts()不会统计到空值。判断时需要使用np.isnan(x) ab = pd.Series([1, np.nan, 2]) ...
  • 确定空值位置:在导入dataframe之后,一个非常好的习惯就是及时检查一下每一列是否有空值,用下面的语句可以简单实现这个需求:df.isnull().any()上面的这行代码可以返回各个列是否有空值的情况,比如下面这样:...
  • 原博文2020-06-10 10:26 −在使用python for循环做数据处理时,会遇到某些文件为空,导致程序报错,可以使用dataframe.empty加if条件判断进行解决例如:1 data = pd.read_csv(file, skiprows=1, header=None, error_...
  • 1.找出含有空值的行方法:DataFrame[DataFrame.isnull().T.any()]其中,isnull()能够判断数据中元素是否为空值;T转置;any()判断该行是否有空值。import pandas as pdimport numpy as npn = np.a...
  • pandas处理数据

    2021-03-22 21:27:32
    ```python import pandas # df = pandas.read_csv("data.csv") df = pandas.read_csv('data2.csv',header=None, names=["num1","num2","num3","num4","name"]) print(df) # print(df.info())
  • Pandas 选择数据

    千次阅读 2017-01-18 21:46:43
    主要介绍Pandas中的四种选择数据的方法:简单的筛选 loc iloc ix 使用判断 这是原始数据: A B C D 2016-01-01 0 1 2 3 2016-01-02 4 5 6 7 2016-01-03 8 9 10 11 2016-01-04 12 13 14 15 2016-01-05 16
  • Pandas(1): 删除数据为空的行

    千次阅读 2020-03-18 16:44:24
    貌似可以做两个数据进行等于的逻辑判断,但是实际上是不可以的,如下所示:他们返回的值是False, 但是实际上,两个值为空,应该相等的。 如果我们使用如下的变量进行验证,这个与使用pandas索引出来处理的结果是...
  • 利用Pandas进行数据分析

    千次阅读 2019-08-24 15:21:28
    Pandas包概述 1、pandas非常适合许多不同类型的数据: ①具有异构类型列的表格数据,如SQL表或... 实际上不需要将数据标记放置在Pandas数据结构中。 pandas 的两个主要数据结构,Series(1维)和DataFrame(2维...
  • pandas数据清洗

    2021-01-25 11:11:13
    pandas数据清洗 在数据分析的过程中,原始数据可能在采集的过程中会出现空值或者重复值,为了避免对结果产生影响,我们会对这些异常值进行清理 ...只要有一个为空就会返回布尔值True 删除 数据清洗主要做这
  • pandas最初被作为金融数据分析工具而开发出来,因此,pandas为时间序列分析提供了很好的支持。pandas的名称来自于面板数据(panel data)和Python数据分析(data analysis)。panel data是经济学中关于多维数据
  • 1.找出含有空值的行方法:DataFrame[DataFrame.isnull().T.any()]其中,isnull()能够判断数据中元素是否为空值;T转置;any()判断该行是否有空值。import pandas as pdimport numpy as npn = np.arange(20, dtype=...
  • 使用pandas读取一个数据表,怎么判断表中的某一个数据data的值是否为nan呢? import pandas as pd mydf=pd.read_csv('mydata.csv') print(mydf) print('\n=================================') mydf.iloc[1,2]=pd...
  • Pandas进行数据清洗1、完整性1.1 缺失值1.2 空行2、全面性列数据的单位不统一3、合理性非ASCII字符4、唯一性4.1 一列有多个参数4.2 重复数据 我们有下面的一个数据,利用其做简单的数据分析。 这是一家服装店统计的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,373
精华内容 2,949
关键字:

pandas判断数据是否为空