程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了当您的数据很大时,是否有一种有效的方法可以使用第二张表来填充正确的不一致数据?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决当您的数据很大时,是否有一种有效的方法可以使用第二张表来填充正确的不一致数据??

开发过程中遇到当您的数据很大时,是否有一种有效的方法可以使用第二张表来填充正确的不一致数据?的问题如何解决?下面主要结合日常开发的经验,给出你关于当您的数据很大时,是否有一种有效的方法可以使用第二张表来填充正确的不一致数据?的解决方法建议,希望对你解决当您的数据很大时,是否有一种有效的方法可以使用第二张表来填充正确的不一致数据?有所启发或帮助; @H_675_2@我有一个数据不一致的表,如下所示:

@H_675_2@表 1:

flight_ID ENGIne_number aircraft_tail
000000_20180121 000000 G-RHBZ 2018 01
258741_20171021 258741 H-RZBE 2017 10
_20150214 V-RDER 2015 02
_20110287 NO-numbER G-EHRK 2011 12
@H_675_2@这是不一致的,因为某些字段不遵守指定的格式。例如,ENGIne_number 不应等于 '000000' 或不存在(第 2 行和第 3 行)。我想用坏字段和相应的正确值创建另一个表(一个指标表),我有另一个表(很大),我可以用它来创建这样的指标表

@H_675_2@表 2:

ENGIne_number aircraft_tail
258741 H-RZBE 2017 10
348741 V-RDER 2015 02
348741 V-RDER 2015 03
589745 G-RHBZ 2018 01
587981 G-EHRK 2011 12
@H_675_2@我想要的指标表看起来像

@H_675_2@表 3:*指标表*

bad_ENGIne_number aircraft_tail good_ENGIne_number
000000 G-RHBZ 2018 01 589745
V-RDER 2015 02 348741
NO-numbER G-EHRK 2011 02 12
@H_675_2@正如您所看到的,这两个表(表 1 和表 2)具有共同的飞机尾、年和月列。但是我无法合并它们来创建指标表,因为我正在处理连续数据并且我的表的维度很大。我尝试使用模糊 wuzzy 匹配方法来匹配飞机尾,年份并填写好的引擎号码,但由于数据大小,它再次失败。任何想法请创建这样的指标表?。

@H_675_2@我是这个领域的新手:))) 谢谢!

解决方法

@H_675_2@我认为你可以选择@H_309_214@mergehttps://pandas.pydata.org/docs/reference/api/pandas.DataFrame.merge.html。

import pandas as pd

df1 = pd.DataFrame(data=[
    {"flight_id":"000000_20180121","ENGIne_number":"000000","aircraft_tail":"G-RHBZ","year":"2018","month":"01"},{"flight_id":"258741_20171021","ENGIne_number":"258741","aircraft_tail":"H-RZBE","year":"2017","month":"10"},{"flight_id":"_20150214","ENGIne_number":"","aircraft_tail":"V-RDER","year":"2015","month":"02"},{"flight_id":"_20110287","ENGIne_number":"NO-numbER","aircraft_tail":"G-EHRK","year":"2011","month":"12"}]
)
df2 = pd.DataFrame(data=[
    {"ENGIne_number":"258741",{"ENGIne_number":"348741","month":"03"},{"ENGIne_number":"589745",{"ENGIne_number":"587981","month":"12"}]
    )

# Validator function
def bad_ENGIne_number_detector(ENGIne_number):

    lst_invalid_ENGIne_number = ["000000","NO-numbER"]

    is_bad_ENGIne_number = false
    if ENGIne_number == "":
        is_bad_ENGIne_number = True
    elif ENGIne_number in lst_invalid_ENGIne_number:
        is_bad_ENGIne_number = True

    return is_bad_ENGIne_number
    
# Identify invalid entries on df1
mask = df1["ENGIne_number"].apply(bad_ENGIne_number_detector)

# Merge both tables (df1 filtered only with bad entries)
df1.loc[mask].merge(df2,on=["aircraft_tail","year","month"],suffixes=["_bad","_good"])
flight_id ENGIne_number_bad aircraft_tail ENGIne_number_good
000000_20180121 000000 G-RHBZ 2018 01 589745
_20150214 V-RDER 2015 02 348741
_20110287 NO-numbER G-EHRK 2011 12 587981

大佬总结

以上是大佬教程为你收集整理的当您的数据很大时,是否有一种有效的方法可以使用第二张表来填充正确的不一致数据?全部内容,希望文章能够帮你解决当您的数据很大时,是否有一种有效的方法可以使用第二张表来填充正确的不一致数据?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: