我是萌新,在部门全体使用OC语言的时候偷偷学了python。然后被老大发现了,倒是没有把我赶出部门,反而让我用python处理一些数据相关的操作。因为之前走的都是理论方面的路,拿到真的项目要求的时候是有点手忙脚乱了。
我的第一个任务是将设备获得的txt格式的数据日志按照关键字切割成n份,这个没难度,会简单爬虫的知道怎么打开文件匹配正则然后关闭文件的应该都会写。第二个任务是将txt数据获取相关属性值转化成csv,这个也没什么难度百度一下就有很多相关的操作了,我耗时最久的是第三个
python如果不导入其他库的话,用CSV读写文件的时候常见的是按照行读写,你读取的时候可以行列随意,但是写的时候整列整列的写入很恶心心。这里讲讲如何调用pandas库来整列整列的写进CSV文件。我当初不会用pandas的时候第三个任务头铁坚持想要按照列写入从五点做到十一点最后困了不敢了被老大怼了一遍之后怂了老老实实的用行写入,但是第二天不服还是头铁,百度CSDN简书伯乐在线等等全探讨了一遍,发现pandas1是个很伟大的东西,于是下载了艾伯特的《利用Python进行数据分析》,然后整理了下面的东西:
首先呢,你需要获取你想要的数据的列名:
import csv
import pandas as pd
from pandas import Series,DataFrame
def get_wanne_DataFrame_header(logFile):
title=[]
df=pd.read_csv(logFile)
#这里把所有列的数据的name全写进title
for f in pd:
title.append(f)
#倘若只想获取几列数据在下面写个list将title的对应的name写进去然后return list跟df即可
return title,df
其次呢,pandas里面的数据格式是Series跟DataFrame,我也不想说的这么抽象但是它就是这么个意思。Series是一列数据,n个Series加起来就是DataFrame了就是一个表格了。想了解更多的后面再谈,直接调用上面的函数就可以从CSV里面获取数据列并组合成表了:
def get_wanne_DataFrame_from_logFile(wanne_title_list,df_from_read_csv):
#df[title[0]] is a Series
#then pd.DataFrame turn it into a DataFrame
df=df_from_read_csv
wanne_data=pd.DataFrame(df[title[0]])
for i in range (1,len(title)):
second=pd.DataFrame(df[title[1]])
wanne_data=pd.merge(wanne_data,second,left_index=True,right_index=True)
return wanne_data
最后呢,写入存储位置即可:
def store_DataFrame_into_cv(wanne_data,store_path,store_name):
os.chdir(store_path)
dataframe.to_csv(store_name+'.csv',index=False,header=True)
也就一点小皮毛,老夫献丑了,谢谢各位看官。