数据建模师的日常--小技巧篇

时间:2021-10-06 02:47:25

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+')