《Python数据分析基础》自学笔记+疑难解决

写在前面:刚开始自学python没多久,本来学习爬虫,因为作业的原因现在开始学习数据分析,基础很浅。下面的内容是摘自书本的笔记以及一些个人感悟和遇到的一些问题。有不对的地方大家一定提出来,谢谢。PS:使用pycharm
附上我看的书
trhm

第一章——Python基础

笔记:

  • print 语句中的语法 “{0:d}”.format(z) 。花括号( {} )是一个占位符,表示这里将要 传入 print 语句一个具体的值,这里就是变量 z 的值。 0 指向 format() 方法中的第一个参 数, 在这里, 只包含一个参数 z , 所以 0 就指向这个值;相反, 如果有多个参数, 0 就确 定地表示传入第一个参数。
    冒号( : )用来分隔传入的值和它的格式。 d 表示这个值应该被格式化为整数,没有小数部 分。
    为什么要使用.format,,用占位符得到用逗号分隔的变量的值,如果不用占位符要自己打逗号才会分开

  • 几位小数:

print ("Output #7: {0:.3f}".format(8.3/2.7))
#.3f设定了打印的输出值应该有3位小数
  • type函数:获得对象的类
  • math模块中的函数:exp、log、sqrt,分别表示e的乘方、自然对数、平方根,需要导入才能使用
  • 字符串:
    1. 多行的时候可以使用:
      1.反斜杠 (容易出错)
      2.3个单/双引号
    2. “+ * len",分别是拼接,重复拼接,计算长度
    3. split():拆分成列表,默认使用空格拆分。
    4. join():合成一个字符串,用连接的参数调用,如" ‘,’.join(a)"
    5. strip():去除字符串两端不想要的字符。还有lstrip(),rstrip(),多个参数直接写在一起,如:s.strip(’$_-+’)
    6. replace():替代
    7. lower、upper、capitalize:首字母大写capitalize
  • 正则表达式:import re
  • 列表:
    1. len():计算元素数量
    2. max()、min()最大值最小值
    3. count():计算某元素出现次数
    4. 索引值:[-1]倒数第一个,[-2]倒数第二个
    5. 切片:list[0:2],得到第一第二个组成的新列表
    6. 复制:list1 = list2[:]
    7. 连接:+
    8. in和not in:if a in list: #返回的是布尔值
    9. 追加、删除、弹出:append()向列表末尾追加一个新元素,remove()从列表中删除一个特定元素,pop()从列表末尾删除一个元素 a_list.append(4)
    10. 反转: reverse(),注意他是原地反转,改变了自己
    11. 排序:sort(),原地排序
    12. sorted:太长了,忽略
  • 元组
  • 字典
  • 简化for循环:列表、集合、字典生成式:P32
# 使用列表生成式选择特定的行 
my_data = [[1,2,3], [4,5,6], [7,8,9]]
 rows_to_keep = [row for row in my_data if row[2] > 5]
 print ("Output #130 (list comprehension): {}".format(rows_to_keep))

  • 函数:使用 Google 或 Bing 来搜索“< 你需要的功 能描述 > Python function”可以帮助你找到想要的 Python 函数。

  • 读取文件with open(file,"r",newline='') as filereader:

  • 读取多个文件:glob和os

  • write 方法可将单个 字符串写入一个文件, writelines 方法可将一系列字符串写入一个文件。

  • range:形成数字列表?

第二章

  • 读写CSV文件
  1. 基础实现,不使用csv模块:
# __author: HY
# date: 2019/4/8

import sys

input_file = "供应商数据.csv"
output_file = "输出.csv"

# newline是换行标志
with open(input_file, "r", newline='') as filereader:
    with open(output_file, "w", newline='') as filewriter:
        header = filereader.readline()
        header = header.strip()
        header_list = header.split(',')
        print(header_list)
        filewriter.write(','.join(map(str, header_list)) + '\n')
        # 前面经过一个readline()后指针在实际的第一行数据后面了,后面输出的就是实际数据了
        for row in filereader:
            row = row.strip()
            row_list = row.split(',')
            print(row_list)
            filewriter.write(','.join(map(str, row_list)) + '\n')
# 因为数据里有逗号,所以拆分失败
  1. pandas实现
# __author: HY
# date: 2019/4/9

import pandas as pd

input_file = "供应商数据.csv"
output_file = "pandas输出.csv"
# python 导入数据错误:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb5 in position 0: invalid start
# 编码问题,在参数那里加上encoding='gbk'就行了,至于为什么换成gbk就行了就不知道了
data_frame = pd.read_csv(input_file, encoding='gbk')
print(data_frame)
data_frame.to_csv(output_file)
  1. 使用csv模块
# __author: HY
# date: 2019/4/9

import csv
input_file = "供应商数据.csv"
output_file = "csv输出.csv"


with open(input_file, "r", newline='') as csv_in_file:
    with open(output_file, "w", newline='') as csv_out_file:
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值