python:小技巧收集

这篇具有很好参考价值的文章主要介绍了python:小技巧收集。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、保持数据的原始类型


from numpy import dtype
pd.read_excel(filepath, dtype=dtype)
2、获取列名,并将列名赋值给没有表头的相同数据

df_data_list[1].columns=df_data_list[0].columns
df_data_list[2].columns=df_data_list[0].columns
df_data_list[3].columns=df_data_list[0].columns
3、相同dataframe拼接,向下拼接

df_cat=pd.concat([df_data_list[0],df_data_list[1],df_data_list[2],df_data_list[3]],axis=0)
4、对数据进行转加密MD5

import hashlib
# md5加密
def md5_string(in_str):
    md5 = hashlib.md5()
    md5.update(in_str.encode("utf8"))
    result = md5.hexdigest()
    return result

# 对某一列转编码
df_cat['A'] = df_cat['A'].astype('str')
df_cat['A']= df_cat['A'].apply(md5_string)

# 对某一值转编码
str1='123'
md5_string(str1)
5、isin获取数据

pre_df=df.loc[np.isin(days,'列表')]
6、拼接多个excel文件

import glob
xlsx_list = glob.glob('路径' + '*0.xls') #注意路径指的是拼接文件的路径,*是正则表达式
line = 0
for i in range(0, len(xlsx_list)):
    filepath = xlsx_list[i]
    df_data = pd.read_excel(filepath, dtype=dtype)
    # pd.read_csv('ddd.csv')
    print(filepath, df_data.shape[0])
    line += df_data.shape[0]
    if i == 0:
        df_data.to_csv('concat.csv', index=False, header=True, mode='a+')
    else:
        df_data.to_csv('concat.csv', index=False, header=False, mode='a+')
print(line)
7、生成以及保存多重字典的方法

# PycharmProjects/guangxi_data/getTags/getTags.py
cus_tags = {第一个key: {第二个key: "" for 第二个key in group_names} for 第一个key in cus_list}
# 赋值
cus_tags[第一个key][第二个key]=str(cus)
# 保存。先转成dataframe,再转置,直接保存成excel或者csv
df_tags=pd.DataFrame(cus_tags).T
df_tags.to_csv(save_path, index=False)
8、dict保存成csv的方法

def dict2csv(dict_name, file, column_names):
    with open(file, 'w', encoding='utf8') as f:
        f.write(f"{column_names[0]},{column_names[1]}\n")
        for k, v in dict_name.items():
            f.write(f"{k},{v}\n")

dict2csv(dict_name, '文件名.csv', ["列名1", "列名2", "列名3"])
9、python实现RFE进行特征选

"""
使用RFE进行特征选择:RFE是常见的特征选择方法,也叫递归特征消除。它的工作原理是递归删除特征,
并在剩余的特征上构建模型。它使用模型准确率来判断哪些特征(或特征组合)对预测结果贡献较大。
"""

from sklearn import datasets
from sklearn.feature_selection import RFE
from sklearn.linear_model import LogisticRegression

testdataset = datasets.load_iris()
x = testdataset.data
y = testdataset.target

model = LogisticRegression()
rfe = RFE(model, 2)##rfe(estimator,n_features_to_select,step) estimator参数指明基模型,n_features_to_select指定最终要保留的特征数量,step为整数时设置每次要删除的特征数量,当小于1时,每次去除权重最小的特征。
rfe = rfe.fit(x, y)
print(rfe.support_)
print(rfe.ranking_)
10、将字符串数据转换成日期,获取日期
from datetime import datetime
import datetime as dt

def getCurYMDay(date):  # 把字符串转换成日期
    return datetime.strptime(date, "%Y%m%d%H%M%S").strftime('%Y%m%d')

# 将数据中的时间字符串转变成年月日形式的日期
dates=np.array([int(getCurYMDay(str(time))) for time in df['time']])  


# 传入一个时间,获取往前几个月前的日期。
pre_day=(datetime.strptime(cur_day,"%Y%m%d").date()-relativedelta(months=month_num)).strftime("%Y%m%d")

# 不需要传时间,当前时间往前推算几个月的时间
pre_day = (datetime.now().date() - relativedelta(months=month_num)).strftime("%Y%m%d")
11、npy文件转化以及索引赋值
import numpy as np
import pandas as pd

trans_matrix = np.load("result/trans_arr.npy",  allow_pickle=True)
trans_matrix = pd.DataFrame(data=trans_matrix)  # 将ndarray变成dataframe
product_id_cig = np.load("npys/idx_cig.npy", allow_pickle=True).item()  # 将字典形式的npy变成原始字典

index1 = trans_matrix.index  # 获取dataframe的索引
columns1 = trans_matrix.columns  # 获取dataframe的列名

index_list = index1.to_list()
columns_list = columns1.to_list()

# new_index = product_id_cig.values()
new_index_list = list(product_id_cig.values())
trans_matrix.index = new_index_list
trans_matrix.columns = new_index_list

trans_matrix.to_csv("trans_arr.csv",index=True, header=True)
 12、替换数据中某些字段的部分
gn = [g[:-3] if g.endswith('XXXX') or g.endswith('XXXX') else g for g in df['good_name']]
df['good_name'] = gn
13、获取数据文件的形式并读取数据
    if data_path.endswith(".csv"):
        df=pd.read_csv(data)
    elif data_path.endswith(".xls") or data_path.endswith(".xlsx"):
        df = pd.read_excel(data)
14、获取数据中的非空项 
def getCurYearMonth(date):
    return datetime.strptime(date, "%Y%m%d%H%M%S").strftime('%Y%m')
def formatTime(date):
    return datetime.strptime(date,"%Y-%m-%d %H:%M:%S").strftime("%Y%m%d%H%M%S")
def getCurYMDay(date):  # 把字符串转换成日期
    return datetime.strptime(date, "%Y%m%d%H%M%S").strftime('%Y%m%d')
def getCurMonth(date):  # 把字符串转换成日期
    return datetime.strptime(date, "%Y%m%d%H%M%S").strftime('%m')



df["certifyNumber"] = pd.to_numeric(df["certifyNumber"], errors='coerce')

#日期格式化
df['time']=[formatTime(time) for time in df['time']]


# 过滤金额小于0的
df = df.loc[df['money'] >=1, :]

# 过滤商品数量小于1的
df = df.loc[df['good_num'] >=1, :]

# 筛选userID称非空项,剔除异常值。
df = df.loc[~df['userID'].isnull(), :]

文章来源地址https://www.toymoban.com/news/detail-511868.html

到了这里,关于python:小技巧收集的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • python:小技巧收集

    1、保持数据的原始类型 2、获取列名,并将列名赋值给没有表头的相同数据 3、相同dataframe拼接,向下拼接 4、对数据进行转加密MD5 5、isin获取数据 6、拼接多个excel文件 7、生成以及保存多重字典的方法 8、dict保存成csv的方法 9、python实现RFE进行特征选 10、将字符串数据转换成

    2024年02月11日
    浏览(4)
  • python实战应用讲解-【numpy数组篇】实用小技巧(五)(附python示例代码)

    目录   查找两个NumPy数组的并集 查找NumPy数组中的唯一行 扁平化 一个NumPy数组的列表 使用NumPy在Python中扁平化一个矩阵 从元素上获取NumPy数组值的幂 为了找到两个一维数组的联合,我们可以使用Python Numpy库的函数numpy.union1d()。它返回唯一的、经过排序的数组,其值在两个输

    2023年04月14日
    浏览(11)
  • python实战应用讲解-【numpy数组篇】实用小技巧(八)(附python示例代码)

    目录   如何在NumPy数组上映射一个函数 方法一:numpy.vectorize()方法 方法2:使用lambda函数 方法3:用一个数组作为函数的参数来映射一个NumPy数组 如何使用给定的索引位置重新排列二维NumPy数组的列 如何用NumPy删除只包含0的数组行 如何删除Numpy数组中包含非数字值的列

    2024年02月01日
    浏览(12)
  • MyBatis-Plus 查询PostgreSQL数据库jsonb类型保持原格式

    MyBatis-Plus 查询PostgreSQL数据库jsonb类型保持原格式

    在这篇文章,我们保存了数据库的jsonb类型:MyBatis-Plus 实现PostgreSQL数据库jsonb类型的保存与查询 这篇文章介绍了模糊查询json/jsonb类型:PostgreSQL 查询json/jsonb是否存在某个片段 在模糊查询json/jsonb之前,我们得拿到正确的json/jsonb片段,比如我们模糊查询好几个连着的键值对,

    2024年02月15日
    浏览(49)
  • numpy的下载、数据类型、属性、数组创建

    numpy的下载、数据类型、属性、数组创建

    因为numpy不依赖于任何一个包所以numpy可以直接使用 pip 命令直接下载 下载命令: 建议使用国内源进行下载避免下载过慢或者下载超时的情况出现 在导入numpy的时候我们习惯于将numpy简写成np方便下面程序的调用,几乎所有的程序员都会这么干 获取显示格式配置信息 参数 说明

    2024年02月01日
    浏览(11)
  • 天坑!python【numpy.int64和int类型转换】

    numpy.int64和int是不一样的!!!!一定要注意,这个坑我踩了好几天才发现!!!!! 比如说 :在处理dataframe的时候,读取出来的可能是numpy.int64,但是后边的程序需要int类型,你把numpy.int64喂给它,就会导致程序运行不出你想要的结果,但又不报错。这个时候可以检查一下

    2024年02月16日
    浏览(10)
  • 【解决方法】numpy.float64类型数据无法被解释为整数

    【解决方法】numpy.float64类型数据无法被解释为整数 在使用Python语言进行数据处理时,经常需要用到NumPy库中的各种数据类型和数学函数。其中,Numpy.float64是一种十分常见的数据类型。 然而,有时候我们会遇到这样的错误提示:【numpy.float64 object cannot be interpreted as an integer】

    2024年02月16日
    浏览(18)
  • 第五章 基本引用类型(下)——原始值包装类型、

    第五章 基本引用类型(下)——原始值包装类型、

    5.3 原始值包装类型         为了方便操作原始值,ECMAScript提供了3种特殊的引用类型:Boolean、Number和String。这些类型具有本章介绍的其他引用类型一样的特点,但也具有与各自原始类型对应的特殊行为。每当用到某个原始值的方法或属性时,后台都会创建一个相应原始包

    2024年01月16日
    浏览(13)
  • 【深度学习】 Python 和 NumPy 系列教程(十五):Matplotlib详解:2、3d绘图类型(1):线框图(Wireframe Plot)

    【深度学习】 Python 和 NumPy 系列教程(十五):Matplotlib详解:2、3d绘图类型(1):线框图(Wireframe Plot)

    目录  一、前言 二、实验环境 三、Matplotlib详解  1、2d绘图类型 2、3d绘图类型 0. 设置中文字体 1. 线框图(Wireframe Plot)         Python是一种高级编程语言,由Guido van Rossum于1991年创建。它以简洁、易读的语法而闻名,并且具有强大的功能和广泛的应用领域。Python具有丰富

    2024年02月08日
    浏览(13)
  • Python 中的数字类型与转换技巧

    Python中有三种数字类型: int(整数) float(浮点数) complex(复数) 当您将值分配给变量时,将创建数字类型的变量: 示例:获取您自己的Python服务器 要验证Python中任何对象的类型,请使用type()函数: 示例 整数或整数是无限长度的整数,可以是正数或负数,没有小数部分

    2024年02月08日
    浏览(11)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包