那些年我们在Python掉进的坑——清除不想要的字符

起因,在spark运行的时候出现了这个错误

打开ipython用pandas检查的时候发现后面几条是这个样子
In [1]: import pandas as pd

In [2]: df = pd.read_csv("name_address.csv",sep=',',encoding='utf8')

In [3]: df.keys()
Out[3]: Index([u'name', u'address'], dtype='object')

In [4]: df['address']
Out[4]:
0 珠海市斗门区龙山工业区黄杨大道2004号
1 杭州市西湖区黄姑山路29号颐高创业园
2 北京市北京经济技术开发区科创14街99号33幢D座二层D203室
3 北京市东城区贡院西街6号E栋10层1007室
4 北京市海淀区中关村东路84-7号
5 北京市东城区忠实里南街甲6号楼410室
6 北京市海淀区魏公村小区13号楼2门1
7 北京市朝阳区北苑路168号1号楼9层909号
8 北京市海淀区天秀路10号中国农大国际创业园1号楼B632室
9 北京市昌平区政法大学东侧松园小区
10 北京市朝阳区霄云路21号1幢三层(麦子店孵化器0650号)
11 北京市海淀区广源闸5号1幢7层701-031
12 北京市海淀区花园北路14号院内综合楼二层东侧办公楼
13 北京市海淀区蓝靛厂金源时代购物中心B区2#B座1707室
14 北京市海淀区马甸东路19号9层1021
15 北京市石景山区古城北路甲3号
16 北京市北京经济技术开发区经海2路29号院7号楼202-6
17 北京市密云县溪翁庄镇环湖路66号镇政府1号楼110室-465
18 北京市朝阳区小红门乡南四环成寿寺路308号城外诚商务楼四层2071号
19 北京市朝阳区管庄乡1号1幢2层2088号
20 北京市昌平区东小口镇天通东苑一区33号楼8内2层205
21 北京市密云县古北口镇古御路外街11号镇政府办公楼212室-772
22 北京市朝阳区望京西路甲50号1号楼7层(新企航孵化器203号)
23 北京市北京经济技术开发区文化园西路8号院24号楼11层1202
24 北京市朝阳区小红门乡南四环成寿寺路308号城外诚商务楼四层1198号
25 北京市顺义区南法信镇金关北二路2号院1号楼636室
26 北京市平谷区镇罗营镇镇罗营东街5号
27 北京市平谷区镇罗营镇镇罗营东街5号
28 北京市朝阳区小红门乡南四环成寿寺路308号城外诚商务楼四层1393号
29 北京市丰台区南四环西路188号十五区5号楼603
...
5747765 CQkJICAgCQkJCQkJCQkJCQkgICAJCQnljZflroHluILpgp...
5747766 CQkJICAgCQkJCQkJCQkJCQkgICAJCQnljqbpl6jluILpm4...
5747767 5Y2X5a6B5biC5YW05a6B5Yy65LiK5rW36LevOOWPt+ebm+...
5747768 5Y2X5a6B5biC5YW05a6B5Yy65Lic5bee6LevMuWPt+S4re...
5747769 5Y2X5a6B5biC6Z2S56eA5Yy66YeR5rmW6LevMjjlj7flko...
5747770 5Y2X5a6B5biC5YW05a6B5Yy65pyb5bee5Y2X6LevMTg45Y...
5747771 5Y2X5a6B5biC5YW05a6B5Yy66ZW/5YW06LevMTDlj7flkI...
5747772 5Y2X5a6B5biC5Lq65rCR5Lic6Lev77yS77yR77yQ5Y+356...
5747773 5Y2X5a6B5biC5pyd6Ziz6LevNDnlj7c=
5747774 5Y2X5a6B5biC6Z2S56eA5Yy65ruo5rmW6Lev77yR5Y+35Y...
5747775 5Zub5bed55yB6LWE6Ziz5biC5LmQ6Iez5Y6/5a2U6ZuA5L...
5747776 6LS15bee55yB6LS16Ziz5biC5Y2X5piO5Yy66b6Z5rSe5a...
5747777 5q2m5rGJ5biC5rGf5bK45Yy65LqM5LiD6Lev5Lic56uL5Z...
5747778 5Y2X5a6B5biC54Gr54Ks5LiA5pSv6LevMTDlj7fpk7bovr...
5747779 5Y2X5a6B5biC6Z2S56eA5Yy65paw5rCR6Lev77yR77yN77...
5747780 5Y2X5a6B5biC6Z2S56eA5Yy65qGC6ZuF6LevMTblj7fkuJ...
5747781 5Y2X5a6B5biC6auY5paw5Yy66auY5paw5LiD6LevMuWPt+...
5747782 5Y6m6Zeo5biC5rmW6YeM5Yy65Y2O6I2j6LevMTk45Y+35L...
5747783 6KGi5bee5biC5p+v5Z+O5Yy65paw5paw6KGX6YGT56ul5p...
5747784 5Y2X5a6B5biC57uP5byA5Yy66YeR5Yev6LevOTjlj7c=
5747785 CQkJICAgCQkJCQkJCQkJCQkgICAJCQnlsbHkuJznnIHmtY...
5747786 5YyX5Lqs5biC5Liw5Y+w5Yy66YCg55Sy6KGXMTEw5Y+3Mu...
5747787 6LS15riv5biC6I235Z+O6LevMTEwMuWPt+mYs+WFiemDve...
5747788 5Y2X5a6B5biC6Z2S56eA5Yy66Z2S5bGx6LevMTDlj7fmvr...
5747789 5Y2X5a6B5biC5aSn5a2m5Lic6LevMTc05Y+35bm/6KW/5Y...
5747790 5Y2X5a6B5biC5Y2O5L6o5oqV6LWE5Yy65q2m5L6o5aSn6Y...
5747791 5YyX5Lqs5biC5rW35reA5Yy65b+X5paw5Lic6LevOOWPt+...
5747792 5rex5Zyz5biC56aP55Sw5Yy65Y2O5by65YyX6KGX6YGT5o...
5747793 CQkJICAgCQkJCQkJCQkJCQkgICAJCQnljZflroHluILopb...
5747794 山东省德州市禹城市高新技术开发区东街延长线东首路南
Name: address, Length: 5747795, dtype: object

后面的地址都是英文字符,不能用“,”来分隔
In [7]: def is_alpabet(uchar):
...: uchar = uchar.decode('utf8')
...: if (uchar >=u'\u0041' and uchar <=u'\u005a') or (uchar >= u'\u0061' and uchar<=u'\u007a'):
...: return True
...: else:
...: False
...:
定义一个函数来区分英文字母
In [11]: def is_alpabet(uchar):
...: if type(uchar) != type(u'u\0041'):
...: uchar = uchar.decode('utf8')
...: if (uchar >=u'\u0041' and uchar <=u'\u005a') or (uchar >= u'\u0061' and uchar<=u'\u007a'):
...: return True
...: else:
...: False
...:

In [12]: f = lambda x: is_alpabet(x)

In [13]: df['address'].apply(f)
Out[13]:
0 None
1 None
2 None
3 None
4 None
5 None
6 None
7 None
8 None
9 None
10 None
11 None
12 None
13 None
14 None
15 None
16 None
17 None
18 None
19 None
20 None
21 None
22 None
23 None
24 None
25 None
26 None
27 None
28 None
29 None
...
5747765 True
5747766 True
5747767 None
5747768 None
5747769 None
5747770 None
5747771 None
5747772 None
5747773 None
5747774 None
5747775 None
5747776 None
5747777 None
5747778 None
5747779 None
5747780 None
5747781 None
5747782 None
5747783 None
5747784 None
5747785 True
5747786 None
5747787 None
5747788 None
5747789 None
5747790 None
5747791 None
5747792 None
5747793 True
5747794 None
Name: address, Length: 5747795, dtype: object
用apply传递lambda函数好像没啥用

In [16]: for i in df['address']:
...: if is_alpabet(i) is True:
...: print i
...:
null
null
a
null
null
G昌邑市柳疃镇长胡同村
hangzhou
MATTHIAS
null
null
null
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值