最近我因浏览器支持的数据质量而遇到了一个错误,我正在寻找一个安全的规则来应用没有双倍大小的字符串转义,除非需要.
UTF-8字节序列"E2-80-A8"(U + 2028,LINE SEPARATOR),Unicode数据库中完全有效的字符.但是,该序列表示行分隔符(是,否则为"0A").
很糟糕的是,许多浏览器(包括Chrome,Firefox和Safari;我没有测试其他浏览器)无法处理JSONP回调,该回调具有包含该Unicode字符的字符串.JSONP包含在非Unicode HTML中,我没有任何控制权.
浏览器只是在这样的JavaScript上报告了INVALID CODE /语法错误,这些错误从调试工具和所有文本编辑器看起来都是有效的.我猜测它可能会尝试将"E2-80-A8"转换为BIG-5并打破JS语法.
以上只是Unicode如何破坏系统意外情况的一个示例.据我所知,一些黑客可以使用RTL和其他控制字符.Unicode规范中有许多"引号","空格","符号"和"控件".
题:
是否有一个Unicode字符列表供每个程序员了解我们可能不希望它们在我们的应用程序中有效的隐藏功能(和错误).(例如Windows禁用文件名中的RTL).
编辑:
我不是要求JSON也不是JavaScript.我要求所有程序的Unicode处理的一般最佳实践.
这是一个有趣的问题.
我有一个带有名称和地址信息的oracle数据库,需要保持最新状态.
我们从许多不同的gov't源获取数据,并且需要找出匹配项,以及是否使用数据更新db,或者是否需要创建新记录.
没有任何类型的唯一标识符可用于将记录绑定在一起,并且数据质量并不总是那么好 - 总会有拼写错误,人们使用不同的名称(即Joe vs. Joseph)等.
我有兴趣听到那些曾经解决过这类问题的人,以及他们如何解决这个问题,或至少是自动化部分问题.
我正在使用 pandas 编写一个数据质量脚本,该脚本将检查每列的某些条件
目前我需要找出特定列中没有小数或实际数字的行。如果数字是整数,我可以找到它,但是到目前为止我所看到的方法(ieisdigit() , isnumeric(), isdecimal()等)无法正确识别该数字何时是十进制数。例如:2.5、0.1245 等。
以下是一些示例代码和数据:
>>> df = pd.DataFrame([
[np.nan, 'foo', 0],
[1, '', 1],
[-1.387326, np.nan, 2],
[0.814772, ' baz', ' '],
["a", ' ', 4],
[" ", 'foo qux ', ' '],
], columns='A B C'.split(),dtype=str)
>>> df
A B C
0 NaN foo 0
1 1 1
2 -1.387326 NaN 2
3 0.814772 baz
4 a 4
5 foo qux
>>> df['A']
0 NaN
1 1
2 -1.387326
3 0.814772
4 …Run Code Online (Sandbox Code Playgroud) 我们假设我有一个表格如下:
Date Sales
09/01/2017 9000
09/02/2017 12000
09/03/2017 0
09/04/2017 11000
09/05/2017 14400
09/06/2017 0
09/07/2017 0
09/08/2017 21000
09/09/2017 15000
09/10/2017 23100
09/11/2017 0
09/12/2017 32000
09/13/2017 8000
Run Code Online (Sandbox Code Playgroud)
表中的值是由我无法访问的R程序估计的(现在是黑盒子).现在有几天有0值,由于我们的摄取/ ETL过程中的问题,这些值往往会蔓延.我需要用0数据估计日期的值.
我们的方法是:
现在,如果只有一天在两个好日子之间缺少数据,那么直截了当的意思就行了.如果连续两天或多天缺少数据,那么平均值就不起作用,所以我试图制定一种方法来估算多个数据点的值.
这种方法在R中有效吗?我在R总共n00b,所以我不确定这是否可行.
我试图找到一种可靠的方法来匹配数据库中的重复人员记录.数据有一些严重的数据质量问题,我也试图修复,但在我批准之前,我仍然坚持使用我得到的数据.
我可以使用的表格列是:
SURNAME VARCHAR2(43)
FORENAME VARCHAR2(38)
BIRTH_DATE DATE
ADDRESS_LINE1 VARCHAR2(60)
ADDRESS_LINE2 VARCHAR2(60)
ADDRESS_LINE3 VARCHAR2(60)
ADDRESS_LINE4 VARCHAR2(60)
ADDRESS_LINE5 VARCHAR2(60)
POSTCODE VARCHAR2(15)
Run Code Online (Sandbox Code Playgroud)
该SOUNDEX功能对于此用途相对有限,但该UTL_MATCH软件包似乎使用Jaro Winker算法提供更好的匹配级别.
有没有人实施一种可靠的方法来匹配这种类型的数据,而不是重新发明轮子?
数据质量问题需要应对:
例如我在考虑:
连接所有地址字段并将Jaro Winkler算法应用于完整地址,并结合对连接在一起的全名的类似测试.
出生日期可以直接比较匹配,但由于大量的数据只是匹配这是不够的.
Oracle 10g R2企业版.
任何有用的建议欢迎.
我今天在接受采访时被问到这个问题,并且不知道如何回答.
任何人都可以提供有关差异的见解吗?
这是我的问题描述:
"根据家庭收入和财富调查,我们需要找出收入和支出最多的前10%家庭.但是,我们知道这些收集的数据由于许多错误陈述而不可靠.尽管有这些错误陈述,我们有数据集中的一些特征肯定是可靠的.但这些特征只是每个家庭财富信息的一小部分."
不可靠的数据意味着家庭对政府撒谎.这些家庭错误地收入和财富,以不公平地获得更多的政府服务.因此,原始数据中的这些欺诈性陈述将导致不正确的结果和模式.
现在,我有以下问题:
请介绍一下可以帮助我解决这个问题的任何想法或参考资料.
提前致谢.