Python的pandas库实战进行一个数据处理的工作
来源:互联网 发布:python 运行效率 编辑:程序博客网 时间:2024/06/06 04:20
下面进行一个目标处理的步骤:将对应满足要求的数据找出来进行处理。
在Excel中完全可以进行但是为了熟悉下pandas中数据框的用法,这里就花点时间试验下;
图片的格式在下方:
主函数:
main.py
import setDF2import reimport numpy as npimport pandas as pd #在data1中找出我们需要的词并输出它们的参数;准备到下次分析def fuzzyfinder(user_input, collection): suggestions = [] pattern = '.*?'.join(user_input) # Converts 'djm' to 'd.*?j.*?m' regex = re.compile(pattern) # Compiles a regex. for item in collection: match = regex.search(item) # Checks if the current item matches the regex. if match: suggestions.append((len(match.group()), match.start(), item)) return [x for _, _, x in sorted(suggestions)]#去掉 “/n”def remove_n(l): for i in range(len(l)): l[i] = l[i].split('\n')[0] return l#往一个集合里面添加一个列表里面的all元素(element)def add_all(c,s): for e in c: s.add(e) return s#传递进来一个词表,返回匹配的字符串表def returnAllword(als): set_kw = remove_n(open('C:\\Users\\Administrator\\Desktop\\word.txt','r+').readlines()) s = set() for string in set_kw: collection = fuzzyfinder(string,als) s = add_all(collection,s) al = list(s) return al#对字符串进行二次处理,里面的字符串元素必须都是来自我们要求的字符def exchange2(l): set_kw = remove_n(open('C:\\Users\\Administrator\\Desktop\\word.txt','r+').readlines()) aal = [] s_e = set(' ') for st in set_kw: s_e = add_all(list(st),s_e) for e in l: if(set(e) & s_e == set(e)): aal.append(e) return aal#已知搜索词,提取数据框中的对应数据def returnListIndex(bl): list_all = data1.搜索词 list_index = [] for i in range(len(data1)): if(list_all[i] in bl): list_index.append(str(i)) return list_index'''step1: 500关键词中寻找搜索词对应的搜索词和我们对应的词条有关的词'''file = 'F:\\By\\August\\160816\\热搜探究\\0816_ws1.csv'data1 = setDF2.setDF2(file)bl = exchange2(returnAllword(data1.搜索词))list_index = returnListIndex(bl)da = np.array(bl)da.shape = len(da),1df = pd.DataFrame(da,index = da,columns = ['条件词'])data2 = pd.DataFrame(data1,index = list_index)''' step2:选取商城点击率较高 且 搜索人气>200的椅子//点击率'''re_index = []for i in np.arange(1,len(data2)): swap = pd.DataFrame(data1,index = [data1.index[i]]) if((float(swap.搜索人气)> 200) & (float(swap.商城点击占比) > 0.40) & (float(swap.直通车参考价) < 2.57)): re_index.append(str(i)) else: passddv = pd.DataFrame(data1,index = re_index)print (ddv) #print()满足条件的所有df中的关键词'''step3:将目标写出到本地'''ddv.to_csv('C:\\Users\\Administrator\\Desktop\\result_word.csv')
辅助函数setDF2.py
#等同于pandas.read_csvimport pandas as pd import numpy as np def strToD(x): str1 = x.split('\n')[0] return str1 def setDF2(file): strings = open(file,'r+').readlines() open(file,'r+').close() names = []; data = [] columes = []; for string1 in strings[1:len(strings)]: hang = string1.split(',') for element in np.arange(0,len(hang)): hang[element] = strToD(hang[element]) if(string1 == strings[1]): columes = string1.split(',')[1:len(string1)] columes[len(columes) - 1] = strToD(columes[len(columes) - 1]) else: data.extend(hang[1:len(hang)]) names.append(hang[0]) dd = np.array(data) dd.shape = len(names),len(columes) df = pd.DataFrame(dd,names,columes) return dfps:那个桌面文档的TXT就是根据特征选的关键字了;;
0 0
- Python的pandas库实战进行一个数据处理的工作
- python进行数据处理——pandas的drop函数
- Python基于pandas的数据处理
- Python数据处理的瑞士军刀:pandas
- Python 数据处理:Pandas 模块的 12 种实用技巧
- Python--第5天:数据处理的瑞士军刀pandas
- Python---第6天:数据处理的瑞士军刀pandas下篇
- Python数据处理的瑞士军刀:pandas(12/10)
- 利用Python Pandas进行数据预处理-Pandas基本的数据结构
- 利用Python 的 Pandas进行数据分析
- 利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍 一、pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主
- Python-pandas模块数据处理
- 数据处理神器Pandas的相关函数
- python pandas库的学习笔记一pandas的数据结构
- python pandas库的学习笔记二pandas的基本功能
- 量化分析师的Python日记【第5天:数据处理的瑞士军刀pandas】
- 量化分析师的Python日记【第6天:数据处理的瑞士军刀pandas下篇
- 量化分析师的Python日记[第5天:数据处理的瑞士军刀pandas]
- PASCAL Annotation转换为VOC xml格式数据
- leetcode 336. Palindrome Pairs 372. Super Pow
- PHP入门1.3
- 常见的网络协议
- Android应用程序中Java与JavaScript如何交互
- Python的pandas库实战进行一个数据处理的工作
- 利用 openresty balancer_by_lua 实现一个简单的 ip_hash upstream 调度
- CodeForces 701A Cards(水水的玩扑克)
- set函数的应用
- 文字滚动
- kettle Named Parameters
- js的盒子运动效果
- 关于compareTo方法比较次数的研究
- c#抓取页面乱码解决办法