办公自动化|第一周

记录一下实习过程中第一周碰到的一些小问题。

1. 报错“No engine for filetype”

网上说是pd.to_excel()的问题,应该改成pd.to_csv,但我试了还是不行。后来发现是我输出文档的路径path_out = 'test' 没加文件后缀。

2. 运行报错 "No such file or dictionary"

非常神奇,我也不知道啥原因,路径什么的都没问题。后来重开了spyder,把Shift+Enter快捷键换成点击开始,看见它 cell(...)...变成 runfile...后就好了

3. month取数问题

(1)当对一整列取数的时候,可以看到此时数据类型为Series,所以要用dt.month

dic = {'date':['2019/10/07','2020/08/17','2021/09/17']}
df = pd.DataFrame(dic)
df.date = pd.to_datetime(df.date)
print(type(df.date))
pd.DataFrame(df['date'].dt.month)

办公自动化|第一周_第1张图片

 (2)当对一个单元格进行取数的时候(比如像这里这样需要进行判断),可以看到数据类型为Timestamp,所以直接.month即可。

import pandas as pd
import datetime
dic = {'date':['2019/10/07','2020/08/17','2021/09/17']}
df = pd.DataFrame(dic)
df.date = pd.to_datetime(df.date)
print(type(df.loc[i,'date'])) 

for i in range(len(df.date.index)):
    if df.loc[i,'date'].month == 9:
        print('yes')
    else:
        print('not')

 

4. extract()函数

 extract函数可以对一整列进行操作,下面的例子是要对M进行操作,只要里面的订单号(格式为大写字母+不等长数字;其中有种格式比较特殊,即“FD-00000”),所以在正则表达式中“-”后面加一个?,即匹配1次或0次

import pandas as pd
import re
di = {'M':['生鲜-小王-S800920','天王盖地虎-B2019302','小黄鸭-小张-便利店-FD-20193002','天王盖地虎-B2019302-与我无关']}
df1 = pd.DataFrame(di,index = ['a','b','c','d'])
df1['N'] = df1['M'].str.extract('([A-Z]+-?\d+)')
df1.fillna('')

 办公自动化|第一周_第2张图片

 

你可能感兴趣的:(实习生日记,python,excel)