python 杂记2




判断文件是否存在,以及复制文件

import os
import  shutil

# 判断文件是否存在
if not os.path.exists('C:\\Users'):
    # 复制文件,类似于 cp 命令
	shutil.copyfile(path1, path2)



pandas 判断某一列的规则

# df第一列的字符串不以4开头
df.iloc[:,0].str.match('[^4]')



pandas 中 series 转换为 dataframe

# 以下两个的结果是一样的。
df.iloc[:,0].to_frame()
df.iloc[:,[0]]

# 可用在,必须使用df的情况下
df_sum = df.sum(axis=1).to_frame()



pandas读取excel文件的两种方式

path = "./test.xlsx"

# 方式一:pd.read_excel
df = pd.read_excel(path,
                   sheet_name=0,
                   header=0,
                   index_col=None,
                   usecols=None,
                   skiprows=None,
                   nrows=None)
'''
pd.read_excel参数:
	path:文件路径/str, bytes, ExcelFile, xlrd.Book, path object, or file-like object
	sheet_name:可以是sheet名,也可以第几个sheet。
	header:设置列名索引(从0开始)
	index_col:设置索引(从0开始)
	usecols:选择你需要的列,比如"a:d"(a到d,包括a和d),"a,b"
	skiprows:忽略行数,可以用header来做,一般不用
	nrows:选择你需要的条数,比如10,就会读取10条数据

返回值:dataframe
它会直接读取数据
'''


# 方式二:pd.ExcelFile
df_e = pd.ExcelFile(path)

'''
pd.ExcelFile参数:
	path:文件路径

返回值:ExcelFile对象
它会将excel表解析为dataframe对象,若想读取数据,需要调用parse方法
'''

sheet_name = df_e.sheet_names
# 返回excel表中所有的sheet名

df_e.parse(sheet_name=0,
          header=0,
          index_col=None,
          usecols=None,
          skiprows=None,
          nrows=None)
'''
df_e.parse方法是读取ExcelFile对象中某个sheet表的值,其中的参数和read_excel方法中的参数的含义一样。

返回值:dataframe
'''

两种读取excel的方式怎么选?

一般情况下,确定读取表中的数据,就使用read_excel。

如果一个表中有多个sheet工作薄都要读取,可以使用pd.ExcelFile,还可以返回相对应的sheet名,防止读取数据时sheet名出错。


read_excel也可以返回所有都sheet名,需要将sheet_name设置为None,返回是一个大字典,字典的键就是sheet_name,值为对应的整个sheet的数据。这样有一个缺点,就是不能分别设置不同sheet读取方式,必须读取出来再处理,比较麻烦。


dataframe 与列表运算

df = pd.DataFrame([[1,2],[3,4]])

# dataframe 与列表运算
df*[0.1, 0.2]
'''
输出:
     0    1
0  0.1  0.4
1  0.3  0.8

列表会和dataframe每一行做运算
'''


#dataframe 插入列
df.insert(0,'1',2)
'''
在0的位置,插入一列,命名为'1',值为2
'''


获取某月的第一天和最后一天的日期

import datetime
import calendar

# 2021年1月1日
month_s = datetime.datetime(2021, 1, 1)

# 获取某年某月的天数
num = calendar.monthrange(month_s.year, month_s.month)[1]
# 2021年1月最后一天
month_e = datetime.datetime(month_s.year, month_s.month, num)



pandas删除重复值drop_duplicates

df.drop_duplicates(subset=None, keep='first', inplace=False)

'''
参数解释:
subset:列标签或标签序列,可选, 默认使用所有列

keep:选项有{'first','last',False},默认'first'
	- first:保留第一次出现的重复项
	- last:删除重复项,除了最后一次出现
	- false:删除所有重复项

inplace:是否替换原数据,默认是生成新的对象
'''
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力生活的黄先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值