最近常用的Python数据处理的小技巧
1.元组的列表去重
元组或者列表如果做hash会报错。所以可以使用先放到一个汇总列表里,然后用set函数的方法。
test_tuple1_list=[('a','b')]
test_tuple2_list=[('a','c')]
test_tuple3_list=[('a','b')]
test_tuple1_list.extend(test_tuple2_list)
test_tuple1_list.extend(test_tuple3_list)
test_set=set(test_tuple1_list)
print test_set
2.两个字典的合并
test_dict1={'k1':'v1','k2':'v2'}
test_dict2={'k1':'v1_2','k3':'v3'}
print dict(test_dict1,**test_dict2)
打印出来结果是
{'k1':'v1_2', 'k2':'v2','k3':'v3'}
字典的加减:
dict_a={'k1':'v1','k2':'v2','k3':'v3'}
dict_b={'k1':'v1'}
print set(dict_a) - set(dict_b)
3.集合的操作
set1=set('abc')
set2=set('bcd')
集合的交集,set1&set2;
集合的并集,set1 | set2
检查集合的包含关系
list1=['a','b','c']
set1=set(list1)
list2=['a','b','c','d']
set2=set(list2)
print set1<=set2
4. 频次的统计
collections里面的Counter
如果要对字典逆序的话,比如对于AduaListDict这个字典逆序。
SortedAduaDict = [ (AduaListDict[k], k) fork in AduaListDict.keys()]
SortedAduaDict.sort(reverse=True)
5.快速初始化一个字典
下面这段代码,把三个列表合并(去重)而成的一个列表,初始化为一个字典
tl1=[1,3,5]
tl2=[3,4,5]
tl3=[5,9]
test_set=set(tl1) | set(tl2) | set(tl3)
printlist(test_set)
test_dict=dict.fromkeys(list(test_set),'yes')
6. 取得一个字符串里的所有单个字符(去重)
test_set1=set('baoma2xi(jinkou)')
test_set2=set('baoma3xi')
printtest_set1
7. 检查一个字符串是不是全是数字:
test_str='237869'
printtest_str.isdigit()
8. 对于一串数字,求最大最小求和,可以用min,max,sum求得。如果再复杂的,就要用pandas了。
9.自动得到中文的拼音
fromxpinyin import Pinyin
p=Pinyin()
x=p.get_pinyin(u"北京")
print x
10. 一个超有用的函数eval(str())。把符合列表、字典,各种格式的字符串转成数据结构。
site_car_list=['abc','set(["d","e","f"])']
yiche_car_list=list(eval(str(site_car_list[1])))
printyiche_car_list
11.在元组、列表或者字典里的中文,如果直接打印的话,很可能打出来是乱码
这时候可以用.join函数,转为字符串再打印。
print "".join(test_str.split())