这两天用Python写了个小程序,原理实现部分不难,但是对python语言不熟,过程遇到挺多困难的。而且最后发现评估原则有些没用实现到的。考虑到时间宝贵,就以后再做吧。
代码就不贴了,把一些问题解决方案记录一下:
1.读取csv。注意编码,header指定了表头位置,如果前几行是空行是不用算进来的。比如我的表里表头在第7行,但其实表头前面只有2行是有内容的。
import pandas as pd
df=pd.read_csv(file_name,encoding='utf-8',header=2)
这样读出来的类型可能都是object,不利于后续比较计算,可以采用以下方法:
frame[CMAX]=frame[CMAX].astype(int)
frame[WUR]=frame[WUR].astype(float)
print(frame.dtypes)#检查frame每列的类型
2.根据列名新建一个行数更少的dataframe。
frame=DataFrame(df,columns=[CellName,ENB,CMAX,WUR])
3.删除/选取某行含有特定数值的列。
rows=[x for i,x in enumerate(frame.index) if frame.iat[i,3]=='NIL' or pd.isnull(frame.iat[i,3])]
#利用enumerat