目录
文件系统操作
合并某个目录下所有txt格式文件(这个代码也是参考别人的代码进行了一些修改):
import os
import os.path
import pandas as pd
def MergeTxt(filepath, outfile):
k = open(filepath + outfile, 'a+', encoding='utf-8')
for parent, dirnames, filenames in os.walk(filepath):
for filepath in filenames:
txtPath = os.path.join(parent, filepath)
f = open(txtPath, encoding='utf-8')
k.write(f.read()+"\n")
k.close()
print("文件写入完成")
if __name__=='__main__':
filepath="./agriculture_index/"
outfile = "total1.txt"
MergeTxt(filepath, outfile)
List创建与转换
1.List创建方法
- list()
- 通过**[ ]**直接赋值给变量,如:lis = [1,2,3,4]
- 列表推导式解析,语法格式如下:
list = [expression for var in range]
应用实例:
绘制地图时需要传入数组对,即传入格式为:[(‘湖南’,5),(’浙江‘,4)]
mrkts = [(i, int(j)) for i,j in zip(y2.index, y2.values)]
2.List元素类型转换
列表中字符串变为整型(浮点型)
y = zj_var['var_num'].to_list()
y_lis = list(map(loat, y))
3.DataFrame转换为List
to_list()和tolist()
Pandas数据基础处理
数据导入
读取csv格式文件属于最基础操作,基本语句:
df = pd.read_csv('./total.txt',encoding = 'utf-8', sep = '\t', index_col = False, names=['Date', 'Variety', 'Market', 'low', 'High', 'Mean', 'unit','url' ])
这里面有几点需说明:
1.index_col=False,没有指定index;
2.导入数据没有表头,通过names传入列名的列表。
特殊符号删除(替换)
导入数据中包含一些特殊符号,这份数据中所有特殊符号都在第一位,且只有1个,所以相对好处理,删除了数值前的问号。
tmp1['low']=tmp1['low'].str.lstrip('?')
数据操作
- 提取前20行,前2列数据
var_cnt_20 = var_cnt.iloc[0:20,0:3]
- 行数据提取——删除特定属性值的样本
tmp2 = tmp1.drop(index = df[(df['Market'] == "XXXXX")].index.tolist())
删除属性值中前后的中括号,需要的数据格式为:’2016-12-30‘,实际为:[‘20