1. 循环读取目录下所有CSV文件
1.1 先查看文件目录
import os filelist = os.listdir(r'E:\scripts\2017-2-27论文') filelist Out[5]: ['paper_with_fanqizha.py', 'paper_with_pingfenka.py', '借款基础信息.csv', '央行-信用卡明细.csv', '央行-基础信息.csv', '央行-查询记录.csv', '淘宝-基础信息.csv', '淘宝-月账单.csv', '淘宝-消费明细.csv', '淘宝-消费类型分布.csv', '账单.csv', '通讯录-联系人统计.csv']
1.2复制要读取的文件名, 创建列表, 并循环读取
#读取数据并保存到data_list中 filelist = [ '借款基础信息.csv', '央行-信用卡明细.csv', '央行-基础信息.csv', '央行-查询记录.csv', '淘宝-基础信息.csv', '淘宝-月账单.csv', '淘宝-消费明细.csv', '淘宝-消费类型分布.csv', '账单.csv', '通讯录-联系人统计.csv'] if 'data_list' not in dir(): data_list = [] for fname in filelist: df = pd.read_csv(fname) df.rename(columns={'\ufeff借款编号': '借款编号', #填坑 '\ufeff借款信息': '借款编号'}, inplace=True) assert df.iloc[:, 0].name == '借款编号', "改名未成功" data_list.append(df)
2.开发时避免重复读取数据, 浪费时间
判断数据是否存在于内存空间后读取
import pandas if data not in dir(): data = pd.read_csv(fname)
3. 在公司和宿舍使用的脚本目录不一样, 使用目录时需要更改目录, 利用try - except 尝试读取不同目录的文件
try: tips = pd.read_csv(r'F:\分类\工作文件\python学习\pydata-book-master\ch08\tips.csv') except: tips = pd.read_csv(r'E:\scripts\python学习\pydata-book-master\ch08\tips.csv')
4.对字符串所代表的变量赋值
spyder 会警告未定义参数, 但是并不影响脚本运行, 克服强迫症
globals()["a"] = 1 #方法1 print(a) setattr(__builtins__, "b", 2) #方法2 print(b)
5.读取字符串为pd.DataFrame
<利用python进行数据分析>代码有误, 查廖雪峰的官方网站找到解决方法
from io import StringIO #书上是from StringIO import StringIO, 报错找不到模块 data = """\ Sample Gender Handedness 1 Female Right-handed 2 Male Left-handed 3 Female Right-handed 4 Male Right-handed 5 Male Left-handed 6 Male Right-handed 7 Female Right-handed 8 Female Left-handed 9 Male Right-handed 10 Female Right-handed""" data = pd.read_table(StringIO(data), sep='\s+')