玩转大数据机器学习与数据挖掘Python语言与信息数据获取和机器学习

这特么是谁收集的数据:数据前处理摘要

2017-07-08  本文已影响44人  坂本龙一

好的数据都是相同的,不好的数据各有各让人抓狂的地方。

打开Speed Dating Match数据,先是import数据处理三板斧pands, numpy,matplot。之后摩拳擦掌,立刻准备用pandas先把数据弄上床,数据就是手下待宰绵羊,可以肆意玩弄了。

df = pd.read_csv('Speed Dating Match.csv')
df.head()

what ?! 打不开!
简直不按套路出牌,查看错误才发现,原来read_csv只能默认打开utf-8编码的文档。就像是解惯了背扣胸罩的愣头青,突然碰到前扣胸罩,一时不知如何下手。直叫女生扫兴,满脸不开心,本以为自己躺着慢慢享受就可以了,却又要来。(最近王二的书看多了,真是开口就是段子。)

于是只能求助谷姐了。

1. 这码打得,怎么无码看数据

第一个方案:让我们来看看你到底是什么

很简单,用编辑器打开,比如用我们的好伙伴notepad。 之后File -> Save AsSave菜单的旁边就是一个encoding下拉菜单,而你当前的编码方式就已被选中,躺在那儿了。

之后在read_csv函数加上参数,encoding='当前编码'就行了。

第二个方案:霸王硬上弓,我一一试,不信就解不开

市面上的胸罩,背扣,前扣,还有侧扣,再怎么整也就三种。一个个试。

到背后摸一摸,光溜溜。

再转到前面摸一摸,没有。

侧面摸一摸,还是没有?这尼玛是运动内衣吗。

开个玩笑,一般情况下还是就这三种啦。

和这个也一样,市面上一般csv文件的编码也就那么几种。一个个试,总有一款适合你。

还是不行,试试第一个方案,如果再不行,看看是不是那个混蛋恶作剧。悄悄的,把其他文件改成了csv文件。

完成这个之后,你就可以好好欣赏眼前的雪白了,嘿嘿嘿。

2. 哪个死缺德居然不填数据

很多数据里面出现一些nan也是正常的,毕竟,人都懒嘛。于是要不然用平均值填填,或其他默认值。要不然就直接丢掉不用,男子汉做事何必在意细节呢。

方法很简单,先找出有nan值的行。

nan_ind = pd.isnull(df.values).any(1).nonzero()[0]

再来把这些都丢掉就好了。

pd.drop(df.index(nan_ind), inplace=True)

3. 刷刷刷,去掉分隔符

有时候总会碰到,用各种分隔符分开的数据。每次都写一句针对不同分隔符的split的话,特别麻烦。肿么办?

为什么不写一个通用的函数呢,以后拿来用就可以了。

于是就可以用下面这个

def super_split(string):
    import re, string
    delimiters = '; |, |\*|\n' # 用脸打字中
    # We can also use predifined punctuation
    # delimiters = string.punctuation
    # re.split("[%s]%delimiters, string)
    return re.split(delimiters, string)

如果需要更多分隔符的话,改改delimiters,自己定制一个自己的也行。

上一篇下一篇

猜你喜欢

热点阅读