Python-Pandas-Excel/CSV 数据处理大全整理 (四)

本文详细介绍了Python中处理Excel和CSV文件的方法,包括导入导出、运算符优先级、控制语句等,并提供了代码实例。同时,文章强调了代码格式规范,如空格、缩进、断行等,以及异常处理和日期计算。此外,还预告了后续将分享的爬虫和金融量化分析内容。
摘要由CSDN通过智能技术生成

本文主要针对Python处理Excel & CSV文件的应用。所有代码均实例化代入且逐条备注解释。

全文逐条手工输入整理,可能会产生错误之处,还请指正。

之后会陆续整理 “爬虫” 与 “金融量化分析” 两个文档

#   --------------------------------------------------------------------------------------------

代码格式规范与排版:

# 代码下方出现波浪线表示代码输入的不规范,但依旧可正常执行代码。

# 如格式不清楚是否规范,可通过复制黏贴可运行的代码至空白处,系统会自动修正代码格式。

或Ctrl+Alt+L,直接将代码格式化


一、空行:
1. import语句上下保留两个空行
2. def函数声明上方保留两个空行
3. class类声明上方保留两个空行
4. def方法声明上方保留1个空行
5. 2个逻辑代码块之间保留1个空行

二、空格:

# 为方便阅读,以下用^代替空格
1. 赋值符号前后各保留一个空格                           # 例: a^=^10
2. 所有二元运算符和数字之间用空格分开            # 例: a^+=^c^+^d
3. (),[],{} 括号内无空格                                          # 例: 合计=pd.concat([数据.总计])
4. 逗号、冒号、分号前面无空格,后面有一个空格      # 例:   print(x,^y)
5. 参数列表、索引、切片的左括号前无空格                # 例:   list[index]

三、缩进:
4个空格为一个缩进级别

四、断行:
1. 在逗号后面断开
2. 在运算符号前面断开

五、数字类型分类:

int        整数类型          # 例: 1
float      浮点类型          # 例: 1.0
complex    复数类型          # 例: 1+2j  (1为实部,2为虚部)
bool       布尔类型          # 例:仅False/True两个值

六、运算符分类:
1.算数运算符:

+   加     # 1+2=3  or 'Hello'+'World'='HelloWorld'    数字类型之间为求和,其他类型之间为连接符
-   减     # 2-1=1
*   乘     # 2*3=6  or 'Hello'*2='HelloHello'       数字类型之间为求积,其他类型之间为重复操作
/   除          # 2/1=2
%   取余        # 3%2=1
//  取整        # 3//2=1  or -3//2=-2    求小于a/b的商的最大整数
**  幂(次方)    # 10**2=100

2.关系运算符:

==      等于           # a等于b时,返回True,否则False
!=      不等于         # a不等于b时,返回True,否则False
>       大于
<       小于
>=      大于等于
<=      小于等于

3.逻辑运算符:

not     非         # a为True,返回False,a为False,返回True
and     与         # a,b全为True,返回True,否则False
or      或         # a,b一者及以上为True,返回True,否则False

4.赋值运算符:

+=       a+=b    >>   a=a+b
-=       a-=b    >>   a=a-b
*=       a*=b    >>   a=a*b
/=       a/=b    >>   a=a/b
%=       a%=b    >>   a=a%b
**=      a**=b   >>   a=a**b
//=      a//=b   >>   a=a//b
&=       a&=b    >>   a=a&b
》=      a》=b    >>   a=a》b
《=      a《=b    >>   a=a《b

5.位运算符:

~     位反
&     位与
|     位或
^     位异或
》    右移
《    左移

七、运算符优先级:

()            小括号
def()         函数调用
[],[]         切片
[]            下标
.             引用类成员
**            幂
~             位反
+,-           正负号
*,/,%         乘,除,取余
+,-           加,减
《,》          位移
&             位与
^             位异或
|             位或
not           非
and           与
or            或
lambda()      Lambda表达式
in,not in,is,is not,<,<=,>,>=,<>,!=,==          比较

八、控制语句:
1.分支语句

1.1  if结构:   
   
    if score >= 85:
        print('优秀')
    if score < 60:
        print('加油')
    if (score >= 60)and(score <= 85):
        print('努力')

 # 条件计算为True,则执行语句;否则执行if后面语句 
1.2  if-else结构:

    if score >= 60:
        print('及格')
        if score >= 90:
            print('优秀')
    else:
    print('不及格')

# 先判断if条件,如果True,则执行语句1,然后跳过else语句及语句组2;
               如果False,则跳过语句1,执行语句2
1.3  elif结构:

    if score >= 90:
        grade='A'
    elif score >= 80:
        grade='B'
    elif score >= 70:
        grade='C'
    else:
        grade='F'
    print('Grade='+grade)

# 为if-else结构的多层嵌套,只执行if条件中的某一个语句

2.循环语句

2.1 while语句:

    i=0
    while i*i<100
        i+=1
    print('i={0}'.format(i))
    print('i*i={0}'.format(i*i))

# 循环次数无限制,只要满足条件则循环
2.2 for语句:

for item in 'Hello':
    print(item)                            
# 输出:H e l l o

for item in range(1,10,2)                  # 1代表开始值,10代表结束值 2代表步长
    print('Count is:{0}'.format(item))     
# 输出:Count is:1   Count is:3   Count is:5   Count is:7  Count is:9

# 用于序列循环,序列包括字符串,列表,元组

3.跳转语句

3.1 break语句:

    for item in range(5)
        if item == 3
            break
        print('Count is:{0}'.format(item))     
# 输出:Count is:0   Count is:1   Count is:2

# 强行退出循环体,不再执行剩余语句
3.2 continue语句:

    for item in range (5)
        if item == 3
            continue
        print('Count is:{0}'.format(item))      
# 输出:Count is:0   Count is:1   Count is:2   Count is:4

# 跳过if目标语句,执行循环体

九、常见异常:

1. AttributeError异常:访问一个类中不存在的元素(包括:成员变量、属性、成员方法)
2. OSError/IOError/FileNotFoundError异常:操作系统相关异常(例:”未找到文件“或”磁盘已满“)
3. IndexError异常:访问序列元素时,下标索引超出取值范围(例:序列中共4个元素,要访问第5个元素时会弹出该异常)
4. KeyError异常:访问字典里不存在的键
5. NameError异常:使用一个不存在的变量
6. TypeError异常:传入的变量类型与要求不符
7. ValueError异常:传入一个无效的参数值

十、日期的计算:
# datetime 表示时间和日期 ;  date 表示日期 ; time 表示一天内的时间 ; timedelta 表示时间差

import datetime as 日期模块:
def 累加月(日期,传入的月份):
    年=传入的月份//12
    传入的月份=日期.month+传入的月份%12
    if月!=12:
        年=年+月//12
        月=月%12
    return 日期模块.date(日期.year+年,月,日期.day)
起始日期=日期模块.date(2020,05,26)

for i in 数据.index:
    数据['日期'].at[i]=起始日期+日期模块.timedelta(days=i)     
# 例:2020.05.26   2020.05.27   2020.05.28
    数据['日期'].at[i]=日期模块.date(起始日期.year+i,起始日期.month,起始日期.day)      
# 例:2020.05.26   2021.05.26   2022.05.26
    数据['日期'].at[i] =累加月(起始日期,i)               
# 例:2020.05.26   2020.06.26   2020.07.26

print(datetime.datetime.today())      
# 输出: 2021-10-13 16:02:56.794003
#  返回当前本地日期和时间    

print(datetime.datetime.now())     
#  输出:  2021-10-13 16:02:56.794003
#  返回当前本地日期和时间     

print(datetime.datetime.utcnow())   
# 输出: 2021-10-13 08:02:56.794003
#  返回当前UTC日期和时间 (UTC时间与北京时间差8个小时)

print(datetime.datetime.fromtimestamp(999999999.999))        
# 输出:  2001-09-09 09:46:39.999000
# 返回与UNIX时间戳对应的本地日期和时间      

print(datetime.datetime.utcfromtimestamp(999999999.999))    
# 输出:  2001-09-09 01:46:39.999000
# 返回与UNIX时间戳对应的UTC日期和时间       

print(datetime.date(2021,10,13))        
# 输出:2021-10-13
# 表示日期信息              

print(datetime.time(23,59,58,1999))      
# 输出:23:59:58.001999
# 表示一天中的具体时间信息     

print(datetime.timedelta())               
# 计算日期间的差异
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值