标题: 数据处理中的各种问题的解决技巧!解决数据类问题的建模人员必读! [打印本页] 作者: madio 时间: 2020-3-4 16:26 标题: 数据处理中的各种问题的解决技巧!解决数据类问题的建模人员必读! 应该从数据来源解决的问题* K% v0 w: O+ }% w# l
: y2 Z) _0 m, p* s) @: X 值缺失+ }( Z5 q3 v% {
注意数据集中的空值或“null”,除非你知道它们的确切含义。如果数据是年度数据,那么有没有哪年的数据没有被收集到?如果是一项问卷调查,有没有受访者拒绝回答问题?当你在处理缺失数据时,应该问自己:“我知道这个值的缺失是什么意思吗?”如果答案是否定的,你应该检查你的数据来源。 " Q! D% A8 o( Q 2 w5 ]% l2 l% o5 e 使用零代替缺失值 _+ n( m& t! v* p. `& V% Z
使用任意值代替缺失值比缺失值本身更糟糕。这可能是人类无意义思考的结果,也可能是不知道如何处理空值的自动化处理造成的。无论如何,如果你看到一长串的零,应该问自己,这些值真的是零,还是表示“没有”(有时候也会用 -1)。如果你不确定,请检查你的数据来源。8 d. P- o8 g' `7 \8 w$ J$ B( s
6 J: S1 ~: C$ p1 t8 m0 _ 行或值重复- o, w! x) N$ h7 @, r. V6 I% b
如果同一行数据不止一次出现在数据集中,你应该找出原因,有时它可能不是一整行都一样。一些活动财务数据包含了一些修订数据,这些修订数据使用了与原始交易相同的唯一标识符。如果你不知道这点,那么你对数据所做的任何计算都是错误的。如果某些东西看起来应该是唯一的,那就验证它。如果你发现它不是,请检查你的数据来源。6 W; |7 E1 U- [. J+ l% z$ B7 M
! X( I& |1 T' t/ ^( V 拼写不一致' s* o" Y* Y1 `( [
拼写检查是判断数据是否由手动输入的最明显的方式之一。不要只看人们的名字——这些往往是最难检测到拼写错误的地方——应该查找城市名称或州名不一致的地方。如果你发现了这些问题,那么就可以确信数据是手动编辑过的。手动编辑的数据最有可能出错。这并不意味着你不应该使用它们,但你可能需要手动更正这些错误,或者在报告中对其进行说明。 3 ], F2 h9 F2 B- D# O% w' `' v" R* U* } k% E! U 日期格式不一致 3 ^8 ~0 f# R+ e) f7 I1 I, V) D8 {下面两个日期哪个是表示 9 月份:+ v$ ]) _7 @( f: c& [' t
" z! P5 P! h9 n! g& I1 W
10/9/15 W+ e1 i' U; L* O4 B9/10/15) ~6 w# Z6 n/ S7 w! h+ y
如果第一个是欧洲人写的,第二个是美国人,那么它们两个都是表示 9 月份。如果你不知道数据的来源,你就无法确定。所以要确定你的数据来自哪里,并确保它是由来自同一大洲的人生成的。3 D# C! } Y( b8 H- d7 L, J: c' s
: E5 ?# w( E, E+ |3 U) x! | 没有指定单位 $ p4 ~. i8 Y) s/ \1 Gweight 和 cost 都不能传达关于计量单位的任何信息。不要认为美国境内生产的数据就一定是以磅和美元为单位。本地货币中可能会提到到国外的价格。如果数据没有指定单位,请检查你的数据源。+ R" V! g1 v- O
% ~2 D6 n# p6 ~5 T7 l ` 来源没有记录$ N. F5 e# Z* D8 Y O3 v
数据通常由各种个人和组织创建,包括企业、政府、非营利组织等。我们通过很多不同的方式收集数据,包括问卷调查、传感器和卫星。了解你的数据来自哪里可以让你深入了解它的局限性。- L0 V2 R, P* `* @. h
例如,问卷调查数据通常都不会很详尽。传感器的精度各不相同。政府往往不愿意给你无偏见的信息。由于存在穿越战线的危险,来自战区的数据可能具有强烈的地域偏见。更糟糕的是,这些不同的来源经常混在一起。政策分析师经常会打乱从政府收集来的数据。医生指定的数据可能是由护士输入。每种情况都有可能发生错误,所以还是要检查你的数据来源。 . c, Q0 b% u" f$ h T" ]* u1 m7 _9 L6 N4 h( C 数据太粗糙: D% A* x8 n* T' K, B
你有州的数据,但你需要的是县的数据。你有雇主的数据,但你需要的是雇员的数据。他们给了你几年的数据,但你想要几个月的数据。在很多情况下,我们收集的数据对于我们的使用目的而言已经太过了。 8 j% g* z! ?+ q4 { ) X! z) o* B% ^+ [0 w- q一旦数据合并在一起,通常很难再把它们分开。如果你提供的数据太粗糙,就需要向数据来源索要更具体的内容。他们可能没有。即使有,也可能无法或不愿意把它们交给你。为了保护个人隐私,很多联邦数据集无法在本地访问。 & N4 P; `* s8 R) D) B7 h 4 }$ O: Q$ X* x$ ]永远不应该做的一件事是将年度数据除以 12,并称之为“每月平均值”。如果不知道数值的具体分布,那么这个数字就没有意义。这是错误的,所以不要这样做。 ' w& P. d! G0 y3 R' R. h: m8 H2 u& d8 O5 w8 M5 L5 g 拥有 65536 行数据的电子表格+ }5 O) O' h( k# g
老式 Excel 电子表格允许的最大行数为 65,536。如果你收到具有该行数的数据集,则几乎可以肯定你收到的数据是被截断的。较新版本的 Excel 支持 1,048,576 行,因此数据行不太可能达到极限。 k9 d3 I/ }+ k0 @ " I9 u% d* ]1 d+ L \ 拥有 255 列数据的电子表格! C' q4 M% n2 e' G$ }
Apple 的 Numbers 应用程序只能处理包含 255 列的电子表格,并且应用程序会截断具有更多列的文件而不会警告用户。如果你收到的数据集正好为 255 列,那么就要确认这个文件是否在 Numbers 中打开或转换过。2 G. H/ e2 S; `1 e$ N0 L) b
* X* K5 I8 h: G& e+ B, {4 O: M6 f' _ 文本被转换为数字# r0 g& d" A( F
并非所有的数字都是数字。例如,美国人口普查局使用“FIPS 代码”代表美国的每一个地方。这些代码具有不同的长度,都是由数字组成,但它们其实不是数字。037 是洛杉矶县的 FIPS 代码,不是指数字 37。37 是北卡罗来纳州的 FIPS 代码。Excel 和其他电子表格通常会认为它们是数字,就把前导零去掉了。! v, D, v* z1 o( M, s, y
" b- m' [" G% f8 Y 数字以文本形式保存, P9 F1 j; d% z8 R' D8 E1 ?. u+ r
在使用电子表格时,数字可能会被保存为文本。例如,一个单元格可能使用字符串“1,000,000”、“1 000 000”或“USD 1,000,000”,来表示百万美元,而不是直接使用数字 1000000。Excel 可以利用内置函数来处理一些简单的情况,但通常需要使用公式去除字符,直到单元格的内容可以被识别为数字。最好的做法是不使用格式来保存数字,并在列名或元数据中包含相关信息。5 s; n+ Z+ H" k' v
- w( |5 P, J G* y应该由你自己解决的问题- Y/ W: X' d( L4 ?6 h. L/ V
: L/ B p7 L9 T/ @文本乱码/ h. q B8 a- [" Y7 H4 Y
在绝大多数情况下,你的文本编辑器或电子表格应用程序会找出正确的编码,但是,你可能会发现某些人的名字中有怪异的字符。你的数据来源应该能够告诉你数据采用了什么编码。如果他们无法提供这些信息,你可以通过一些可靠的方式猜出来,或去问程序员。 ~8 X N: M/ g. F
( r- a8 W' f3 r$ h$ j4 [1 ~ 换行符是乱码 6 I0 o' |$ c5 c8 u所有文本和“文本数据”文件(如 CSV)都使用不可见字符来表示换行符。Windows、Mac 和 Linux 一直以来没有在换行符该使用什么字符上达成过一致。试图在一个操作系统上打开在另一个操作系统上保存的文件有时会导致 Excel 或其他应用程序无法正确识别换行符。 / c0 d: H# V, T6 G$ [5 a# C9 d 4 c `0 k# R: L5 U% I通常,只需在通用文本编辑器中打开文件并重新保存即可轻松解决该问题。如果文件特别大,你可能需要考虑使用命令行工具或向程序员寻求帮助。 " p7 t2 v {$ y) z4 a: u3 y" t ) E+ x5 v: L0 G( d PDF 中的数据 & {) I- S; X/ E# H大量的数据——尤其是政府数据——只能以 PDF 格式提供。如果你在 PDF 中有真实的文本数据,那么可以通过几种方式来提取它们。Tabula 是一个优秀的免费工具。如果你订阅了 Adobe Creative Cloud,那么可以使用 Acrobat Pro,它提供了将 PDF 表格导出到 Excel 的功能。* K0 x w$ W' |' z7 D/ f* _
! y# C, s$ L# \2 w: M' W, v3 x: y 数据太细- v/ q, ~6 m1 Y. _
这与数据太粗糙刚好相反。在这种情况下,你有县的数据,但你想要州或有几个月的数据。所幸的是,这通常很简单。 & _/ E& r& z" Y$ i& k* F" @7 `. x + J; j8 Z/ z' }1 e可以使用 Excel 或谷歌文档的数据透视表(Pivot Table)功能来汇总数据。透视表是每个记者都应该学习的神奇工具,但它们也有其局限性。对于非常大的数据集,你应该向程序员求助,他们可以制定一个更容易验证和重用的解决方案。( K& z0 w3 m( w
& `' C: G* y% D% b: e2 s; X 手动输入的数据 0 O0 B5 T) ?; v2 Q6 _- E e" g0 d/ I手动数据输入是一个常见问题,至少在这里描述的其他问题中有 10 个与它相关。没有比让一个人输入数据却没有对其进行验证更糟糕的方式来搞砸数据了。例如,我曾经拿到伊利诺伊州库克县完整的养狗许可数据库。系统创建者让狗的主人通过一个文本框输入狗的品质,而不是提供一个狗的品质列表给他们选择。结果这个数据库出现了至少 250 个不同的吉娃娃品种。 / r* \6 o9 U8 w- Q$ N9 X & I5 D: f& R" @* j 数据与格式和注释混杂在一起 o; x; ^7 M* `- u1 S' B+ c' [HTML 和 XML 复杂的数据表示在数据和格式之间有清晰的分隔,但对于电子表格的数据表示来说并非如此。电子表格数据的一个常见问题是,前几行数据实际上是关于数据的描述或备注,而不是列标题或数据本身。数据字典也会被放在电子表格的中,标题行可能会重复,或者在同一张表格中包含多个表(可能有不同的列标题),而不是分成不同的表格存放。2 A5 r% b8 P5 X9 _5 T+ S+ ~( Y& s4 S