首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Python远大期望删除无效数据

使用Python远大期望删除无效数据
EN

Stack Overflow用户
提问于 2021-09-20 10:03:14
回答 1查看 371关注 0票数 0

我刚开始使用“远大前程”库,我想知道是否有可能使用它来从Pandas DataFrame中删除无效数据。如果可能,我如何做到这一点呢?此外,我想插入无效的数据到PostgreSQL数据库。

在文档和Web搜索中,我没有找到任何关于这方面的内容。

后来的编辑:为了澄清:我需要在大期望的情况下,例如,在年龄中找到5行无效的DataFrame (例如,df.expect_column_values_to_not_be_null('age')有5行null),以便从原始DataFrame中删除它们,并将它们插入到PostgreSQL错误表中

EN

回答 1

Stack Overflow用户

发布于 2021-09-20 10:40:37

Great Expectations是验证数据的强大工具。

像所有强大的工具一样,它也不是那么简单。

您可以从这里开始:

代码语言:javascript
复制
import great_expectations as ge
import numpy as np
import pandas as pd
    
# get some random numbers and create a pandas df
df_raw = pd.DataFrame(np.random.randint(0,100,size=(100, 4)), columns=list('ABCD'))

# initialize a "great_expectations" df 
df = ge.from_pandas(df_raw)

# search for invalidate data on column 'A'. 
# In this case, i'm looking for any null value from column 'A'.
df.expect_column_values_to_not_be_null('A')

结果:

代码语言:javascript
复制
{
  "exception_info": null,
  "expectation_config": {
    "expectation_type": "expect_column_values_to_not_be_null",
    "kwargs": {
      "column": "A",
      "result_format": "BASIC"
    },
    "meta": {}
  },
  "meta": {},
  "success": true,
  "result": {
    "element_count": 100,
    "unexpected_count": 0,
    "unexpected_percent": 0.0,
    "partial_unexpected_list": []
  }
}

看看回复:好消息!

我的df中没有null值。"unexpected_count"等于0

接口参考:https://legacy.docs.greatexpectations.io/en/latest/autoapi/great_expectations/index.html

EDIT:如果您只需要查找一些无效值并将您的df拆分为:

数据帧清理Dataframe

  • Dirty

也许你不需要"great_expectations"。您可以使用如下函数:

代码语言:javascript
复制
import pandas as pd

my_df = pd.DataFrame({'A': [1,2,1,2,3,0,1,1,5,2]})

def check_data_quality(dataframe):
    df = dataframe
    clean_df = df[df['A'].isin([1, 2])]
    dirty_df = df[df["A"].isin([1, 2]) == False]
    return {'clean': clean_df, 
            'dirty': dirty_df}

my_df_clean = check_data_quality(my_df)['clean']
my_df_dirty = check_data_quality(my_df)['dirty']
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69252549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档