程序问答
发布时间: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
@merge
https://panda
s.pydata
.org/docs/reference/api/panda
s.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,请注明来意。