Python 比较两个 dataframe 差异并输出结果

如何使用python对比两个dataframe 是否一致 对比数据集 阅读详情

设计思路1.0

假设两个dataframe为df1和df2,三个排序列名为list_cols。

步骤

  1. 对df1和df2按list_cols排序,然后重置索引(drop=True,这样不会保留原索引)

  2. 对两个dataframe的object列应用str.strip()

  3. 创建一个与df1(排序后)形状相同的布尔dataframe,初始为True

  4. 遍历每一行和每一列,比较df1和df2的每个单元格,如果不相等,则将布尔dataframe的对应位置设为False

  5. 然后删除布尔dataframe中全为True的行和列

  6. 利用布尔dataframe的行索引和列索引,从排序后的df1和df2中提取相应的行和列,注意:行索引是布尔dataframe的行索引,列索引是布尔dataframe的列索引

  7. 将提取的两个dataframe分别写入Excel的两个sheet

V1.0

import pandas as pd
import numpy as np
import openpyxl

def compare_dataframes(df1, df2, sort_columns, df1_name='df1', df2_name='df2'):
    """
    比较两个结构相同的dataframe,输出差异结果到Excel文件
    
    Parameters:
    -----------
    df1, df2 : pandas.DataFrame
        要比较的两个dataframe
    sort_columns : list
        用于排序的三个列名
    df1_name, df2_name : str
        两个dataframe的名称,用于Excel sheet命名
    """
    
    # 1. 复制数据避免修改原数据
    df1_processed = df1.copy()
    df2_processed = df2.copy()
    
    # 对object类型列使用str.strip()去掉空格
    for df in [df1_processed, df2_processed]:
        for col in df.select_dtypes(include=['object']).columns:
            df[col] = df[col].astype(str).str.strip()
    
    # 根据排序列名重新排序并重置索引
    df1_sorted = df1_processed.sort_values(by=sort_columns).reset_index(drop=True)
    df2_sorted = df2_processed.sort_values(by=sort_columns).reset_index(drop=True)
    
    # 检查两个dataframe是否具有相同的形状
    if df1_sorted.shape != df2_sorted.shape:
        raise ValueError("两个dataframe的形状不一致,无法比较")
    
    # 2. 构建比较dataframe,标记差异
    comparison_df = pd.DataFrame(True, index=df1_sorted.index, columns=df1_sorted.columns)
    
    # 标记不同的单元格为False
    for col in df1_sorted.columns:
        # 处理可能的NaN值比较
        mask = (df1_sorted[col] != df2_sorted[col])
        # 处理两个都是NaN的情况(应该被认为是相同的)
        both_nan = df1_sorted[col].isna() & df2_sorted[col].isna()
        mask[both_nan] = False
        
        comparison_df.loc[mask, col] = False
    
    # 3. 删除全为TRUE的行和列,仅保留有差异的
    # 删除全为True的行
    rows_with_differences = ~comparison_df.all(axis=1)
    comparison_df = comparison_df[rows_with_differences]
    
    # 删除全为True的列
    cols_with_differences = ~comparison_df.all(axis=0)
    comparison_df = comparison_df.loc[:, cols_with_differences]
    
    # 如果没有差异,直接返回
    if comparison_df.empty:
        print("两个dataframe完全相同,没有差异")
        return
    
    # 4. 根据差异位置筛选原始dataframe,并输出到Excel
    # 获取有差异的行索引和列名
    diff_row_indices = comparison_df.index
    diff_columns = comparison_df.columns
    
    # 筛选出有差异的数据
    df1_diff = df1_sorted.loc[diff_row_indices, diff_columns].copy()
    df2_diff = df2_sorted.loc[diff_row_indices, diff_columns].copy()
    
    # 添加排序列以便查看上下文
    for col in sort_columns:
        if col not in diff_columns:
            df1_diff[col] = df1_sorted.loc[diff_row_indices, col]
            df2_diff[col] = df2_sorted.loc[diff_row_indices, col]
    
    # 重新排列列的顺序,将排序列放在前面
    all_columns = sort_columns + [col for col in diff_columns if col not in sort_columns]
    df1_diff = df1_diff[all_columns]
    df2_diff = df2_diff[all_columns]
    
    # 输出到Excel文件
    output_filename = f"{df1_name}_vs_{df2_name}_comparison.xlsx"
    
    with pd.ExcelWriter(output_filename, engine='openpyxl') as writer:
        df1_diff.to_excel(writer, sheet_name=df1_name, index=False)
        df2_diff.to_excel(writer, sheet_name=df2_name, index=False)
    
    print(f"比较完成!结果已保存到: {output_filename}")
    print(f"发现差异的行数: {len(diff_row_indices)}")
    print(f"发现差异的列数: {len(diff_columns)}")
    
    return comparison_df, df1_diff, df2_diff

# 示例用法
if __name__ == "__main__":
    # 创建示例数据
    data1 = {
        'id': [1, 2, 3, 4, 5],
        'name': ['Alice', 'Bob  ', 'Charlie', 'David', 'Eve'],
        'age': [25, 30, 35, 40, 45],
        'city': ['New York', 'London', 'Tokyo', 'Paris', 'Berlin'],
        'score': [85.5, 92.0, 78.5, 88.0, 95.5]
    }
    
    data2 = {
        'id': [1, 2, 3, 4, 5],
        'name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
        'age': [25, 31, 35, 40, 45],  # Bob的年龄不同
        'city': ['New York', 'London', 'Tokyo', 'Paris', 'Berlin'],
        'score': [85.5, 92.0, 78.5, 88.5, 95.5]  # David的分数不同
    }
    
    df1 = pd.DataFrame(data1)
    df2 = pd.DataFrame(data2)
    
    # 使用函数进行比较
    sort_cols = ['id', 'name', 'city']  # 三个排序列
    result = compare_dataframes(df1, df2, sort_cols, '原始数据', '修改后数据')
  1. 数据预处理:

    • 复制原始数据避免修改
    • 对所有object类型列使用str.strip()去除空格
    • 根据指定的三个列名排序并重置索引
  2. 差异检测:

    • 创建与原始dataframe相同形状的布尔dataframe
    • 标记不同的单元格为False,相同的为True
    • 正确处理NaN值的比较
  3. 结果过滤:

    • 删除全为True的行和列,只保留有差异的部分
  4. 输出结果:

    • 将有差异的数据保存到Excel文件的两个sheet中
    • 自动添加排序列作为上下文信息
    • 提供详细的执行反馈

设计思路 2.0

  1. 输入两个dataframe(df1, df2),以及指定的参数:核心列列表、完全一致列列表、差额列列表、阈值、输出路径。

  2. 检查两个dataframe的行数是否相等,并且所有需要的列都存在。

  3. 提取两个dataframe中需要的列(核心列+完全一致列+差额列),然后按照核心列排序。

  4. 比较完全一致列:逐列比较,如果某列所有行都一致,则删除该列(核心列不删除)。如果某列存在不一致,则保留该列。

  5. 比较差额列:计算两个dataframe对应列的差额,如果所有行的差额都小于阈值,则删除该列;否则保留该列(并且保留核心列)。

  6. 将处理后的两个dataframe输出到同一个Excel文件的两个sheet中,如果两个dataframe都为空,则输出提示信息。

import pandas as pd
import numpy as np

def compare_dataframes(
    df1: pd.DataFrame,
    df2: pd.DataFrame,
    sort_cols: list,
    exact_cols: list,
    diff_cols: list,
    threshold: float,
    output_path: str
) -> None:
    """
    比较两个DataFrame并输出差异报告
    
    参数:
    df1, df2 -- 要比较的两个DataFrame
    sort_cols -- 用于排序的核心列名列表
    exact_cols -- 需要精确比较是否完全一致的列名列表
    diff_cols -- 需要计算差额的列名列表
    threshold -- 可接受的金额差额阈值
    output_path -- 输出Excel文件路径
    """
    # 1. 提取需要的列并创建副本
    all_cols = list(set(sort_cols + exact_cols + diff_cols))
    df1_sub = df1[all_cols].copy()
    df2_sub = df2[all_cols].copy()
    
    # 2. 按指定列排序
    df1_sorted = df1_sub.sort_values(by=sort_cols).reset_index(drop=True)
    df2_sorted = df2_sub.sort_values(by=sort_cols).reset_index(drop=True)
    
    # 3. 处理完全匹配列
    cols_to_drop = []
    for col in exact_cols:
        if col in sort_cols:  # 核心列始终保留
            continue
        if df1_sorted[col].equals(df2_sorted[col]):
            cols_to_drop.append(col)
    
    df1_filtered = df1_sorted.drop(columns=cols_to_drop, errors='ignore')
    df2_filtered = df2_sorted.drop(columns=cols_to_drop, errors='ignore')
    
    # 4. 处理差额列
    diff_mask = pd.Series(False, index=df1_filtered.index)
    cols_to_drop_diff = []
    
    for col in diff_cols:
        if not (pd.api.types.is_numeric_dtype(df1_filtered[col]) and 
                pd.api.types.is_numeric_dtype(df2_filtered[col])):
            continue
            
        # 计算绝对差额
        diff = (df1_filtered[col] - df2_filtered[col]).abs()
        
        # 检查是否所有差额都小于阈值
        if (diff < threshold).all():
            cols_to_drop_diff.append(col)
        else:
            # 标记超过阈值的行
            diff_mask |= (diff >= threshold)
    
    # 删除无差异的列
    df1_final = df1_filtered.drop(columns=cols_to_drop_diff, errors='ignore')
    df2_final = df2_filtered.drop(columns=cols_to_drop_diff, errors='ignore')
    
    # 5. 标记有差异的行
    exact_mask = pd.Series(False, index=df1_final.index)
    remaining_exact_cols = [col for col in exact_cols 
                           if col in df1_final.columns and col in df2_final.columns]
    
    for col in remaining_exact_cols:
        exact_mask |= (df1_final[col] != df2_final[col])
    
    # 合并差异标记
    final_mask = exact_mask | diff_mask
    df1_result = df1_final[final_mask]
    df2_result = df2_final[final_mask]
    
    # 6. 保存结果到Excel
    with pd.ExcelWriter(output_path) as writer:
        df1_result.to_excel(writer, sheet_name='Source1', index=False)
        df2_result.to_excel(writer, sheet_name='Source2', index=False)

# 示例用法
if __name__ == "__main__":
    # 创建示例数据
    data1 = {
        'ID': [1, 2, 3, 4],
        'Name': ['A', 'B', 'C', 'D'],
        'Dept': ['X', 'Y', 'X', 'Y'],
        'Salary': [5000, 6000, 5500, 6200],
        'Bonus': [500, 600, 550, 620]
    }
    data2 = {
        'ID': [1, 2, 3, 4],
        'Name': ['A', 'B', 'C', 'E'],  # D->E 修改
        'Dept': ['X', 'Y', 'X', 'Z'],  # Y->Z 修改
        'Salary': [5000, 6100, 5500, 6300],  # 6000->6100, 6200->6300
        'Bonus': [500, 600, 560, 620]  # 550->560
    }
    
    df1 = pd.DataFrame(data1)
    df2 = pd.DataFrame(data2)
    
    # 设置参数
    sort_columns = ['ID']
    exact_columns = ['Name', 'Dept']  # 需要完全匹配的列
    diff_columns = ['Salary', 'Bonus']  # 需要计算差额的列
    threshold_value = 100  # 可接受的差额阈值
    output_file = "comparison_results.xlsx"
    
    # 执行比较
    compare_dataframes(
        df1=df1,
        df2=df2,
        sort_cols=sort_columns,
        exact_cols=exact_columns,
        diff_cols=diff_columns,
        threshold=threshold_value,
        output_path=output_file
    )

代码功能说明:

  1. 数据准备:

    • 提取指定的列(排序列+精确比较列+差额计算列)
    • 按排序列排序两个DataFrame
  2. 精确匹配列处理:

    • 检查exact_cols中每列是否完全一致
    • 删除完全一致的列(核心列除外)
  3. 差额计算列处理:

    • 计算数值列的绝对差额
    • 删除所有差额都小于阈值的列
    • 标记超过阈值的行
  4. 差异行筛选:

    • 标记所有存在差异的行(精确匹配差异或差额超阈值)
    • 过滤保留有差异的行
  5. 结果输出:

    • 将处理后的两个DataFrame保存到Excel的不同Sheet
    • 包含三张表:源数据1、源数据2、差异汇总(本实现简化为两个Sheet)

使用示例:

df_source1 = pd.read_csv("source1.csv")
df_source2 = pd.read_csv("source2.csv")

compare_dataframes(
    df1=df_source1,
    df2=df_source2,
    sort_cols=['Date', 'ProductID', 'Region'],  # 三重排序
    exact_cols=['ProductName', 'Category'],
    diff_cols=['Revenue', 'Cost', 'Profit'],
    threshold=0.05,  # 允许5%的差额
    output_path="financial_comparison.xlsx"
)
Python-Pandas之两个Dataframe的差异比较 昨天在外网找到一个比较dataframe的好库,叫datacompy,它的优点有: 1、可以把对比后的信息详情打印出来,比如列是否相等,行是否相等; 2、在数据中如果有不相等列,那么就只比较相同的列; 3、可以设置绝对差值和相对差值,比如我们比较有浮点数的数据时,设置下绝对差值为0.01,后面的一系列微小的值就忽略了; 4、在数据报告中,每一列的数据类型、不相等数量、最大差值和空值都详细列出来了; 5、可以把不相等的列单独取出来,取出来就是一个dataframe,可以查看具体哪些是不一样的; 下 阅读详情

相关推荐

比较两个DataFrame的Python神器DataComPy

最近徒弟接到一个新任务,需要对若干组的csv文件进行两两对比,从而得到两者的差异之处。考虑到工作量巨大无比,如果完全手工完成那必然是费时费力,所以就想到将该工作自动化。考虑到她入行不久,短时间内也无法将其编程实现,所以就帮她来处理这个烫手的山芋。经过调研发现,可使用Python库DataComPy来完成该任务。 文章目录 1. 安装方法 2. 原理简述 3. 实例讲解 4. 其他说明..................

herosunly的博客 2万+

python比较两份数据的差异

主要方法是将数据转化成DataFrame,利用pandas进行处理。

番茄炒蛋三分糖 3711

比较两个DataFrame特定数据列的数值是否相同并给出差值:使用np.where函数

本文将介绍如何使用pandas和numpy中的np.where函数来比较两个DataFrame特定数据列的数值是否相同,并给出差值。通过使用pandas和numpy中的相关函数,我们可以方便地比较两个DataFrame特定数据列的数值是否相同,并给出差值。如果不同,将返回df2[‘A’] - df1[‘A’],即两个DataFrame对应行的’A’列数值的差值。如果数值不同,则对应的差值为相应的数值差。现在,我们可以使用np.where函数来比较两个DataFrame特定数据列的数值是否相同,并给出差值。

AlianBlank的博客 911

Python:比较两个dataframe是否相等

dataframe内容比较

qcyfred的博客 4万+

避开这些坑!医疗影像数据增强的6个安全操作指南(附PyTorch代码)

本文详细介绍了医疗影像数据增强的六大安全准则,包括解剖结构守恒、密度值物理意义保留和病灶特征保护等关键原则,并提供了PyTorch实战代码。通过具体案例和参数建议,帮助开发者在肺结节检测和MRI分割等医疗AI应用中实现安全有效的数据增强,避免因不当操作导致的诊断误差。

cola5的博客 556

防止加入域主机脱离域的控制(管理员权限)

一、简介   当公司所有主机加入到域后,SA首要工作就是防止加入域的主机脱离域的控制。让我发现该工作的必要性是一程序猿,前一天刚配完禁止执行QQ、微信执行,第二天就看到那家伙在用微信聊天,肯定是用回旧的本地账号登陆了。   本人所在公司安装软件的类型繁杂,无管理员权限运行不少软件会报错,不得不授予「域账号」本地管理员权限。过大的权限带也来了一系列后果:用户可随意退出域、创建本地管理员...

der69615的博客 3176

Python-Pandas之两个Dataframe的比较(三)

昨天使用了 hashlib 库,今天直接使用 Dataframe 自带的函数去比较两个 df 一,使用 equals 函数对比: import sys, sqlite3, pandas as pd files = [] try: files = [sys.argv[1], sys.argv[2]] except: print('命令行未检测到文件参数。') # 这个方式可以...

苏小败在路上 1万+

【零基础入门哈希签名架构,从Lamport到SPHINCS+】第二集 哈希签名树 Merkle Tree Authentication

在第一集中,我们一直忽略了一个问题。设想一下,假如有一个Hacker(黑客),在截获到Sender发送给Receiver的公钥之后,把这个公钥改成Hacker自己的公钥,然后再发给Receiver,那么Receiver就会误认为这是Sender的公钥。所以我们之前所说放方案,其安全性都需要建立在一个前提下:Receiver需要确认公钥确实是Sender发出的。

m0_50572808的博客 2456

dataframe上下行比较_比较两个DataFrame并并排输出它们的差异

I am trying to highlight exactly what changed between two dataframes.Suppose I have two Python Pandas dataframes:"StudentRoster Jan-1":id Name score isEnrolled Comment...

weixin_39853843的博客 946

VCSA 6.7证书更新全流程指南:从故障诊断到完整替换

本文详细介绍了VCSA 6.7证书更新的全流程,包括故障诊断、证书替换操作步骤及常见问题解决方案。通过使用官方脚本和证书管理器,帮助管理员快速解决证书过期问题,确保vCenter系统的稳定运行。特别强调了STS证书修复和全量证书重置的关键步骤,适用于vcsa6.7环境下的证书管理需求。

weixin_42634811的博客 450

保姆级教程:用Python工具搞定MTK手机分区表(PGPT)备份与线刷引导文件生成

本文提供了一份详细的Python工具链教程,帮助用户备份MTK手机的PGPT分区表并生成线刷引导文件。内容涵盖环境配置、分区表解析、备份流程、线刷文件生成及常见问题排查,特别适合安卓玩机爱好者和开发者。通过本指南,读者可掌握MTK芯片设备的底层分区操作技术,实现安全高效的分区备份与恢复。

weixin_30394669的博客 190

dataframe上下行比较,比较两个DataFrame并并排输出它们的差异

I am trying to highlight exactly what changed between two dataframes.Suppose I have two Python Pandas dataframes:"StudentRoster Jan-1":id Name score isEnrolled Comment...

weixin_42503036的博客 636

告别Python中间件!C#原生调用YOLOv11/v12:工业视觉检测零语言壁垒全流程

本文介绍了一种基于C#和ONNX Runtime的工业视觉检测解决方案,解决了传统YOLO模型在工业应用中面临的三大痛点:语言壁垒、性能损耗和模型更新困难。该系统采用三层架构设计,支持C#原生调用YOLO模型,无需中间件,性能损耗低于5%,满足工业产线30FPS+的实时性要求。文章详细阐述了环境搭建、模型导出规范、核心代码实现及工业级优化方案,提供可直接用于生产环境的完整流程,实现了训练与部署的解耦,显著降低了维护成本。该方案兼容主流YOLO版本,支持全平台部署,为工业视觉检测提供了高效可靠的C#集成方案。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 189

可以直接比较两个 Pandas DataFrame 对象吗

在数据科学的世界里,Pandas 几乎成为了 Python 数据处理的代名词。它强大的功能不仅限于数据清洗、转换和分析,还包括了数据间的比较与合并。但当你尝试直接比较两个 DataFrame 时,是否曾感到一丝困惑?今天,我们就来揭开这个看似简单问题背后的复杂面纱:“?”这不仅仅是对 Pandas API 的探索,更是一场关于数据结构理解和高效编程实践的旅程。

xiamu_CDA的博客 981

C# + YOLO 实时摄像头检测:Emgu CV + ONNX Runtime,30FPS+ 流畅运行

很多教程只给“单张图片推理”代码,一上摄像头就卡成 PPT(<5 FPS)。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 217

3D医学影像开发入门<一>:VS2019+DCMTK3.6.8编译及环境配置

3D医学影像开发入门:VS2019+DCMTK3.6.8编译及环境配置

欧特GO 1308

python对比数据差异_Python DataComPy 库实现Pandas DataFrame 差异比对

DataComPy是一个比较两个Pandas.DataFrame的第三方库。它最初是用来替代SAS的Pandas DataFrames的比较程序的,它的功能比Pandas.DataFrame.equals(DataFrame)更多,如支持打印详细的统计数据,并允许我们通过参数设置匹配的精确程度。同时将该功能扩展到了SparkDataframes,满足数据集巨大时的比对需求。DataComPy 安装...

weixin_39650784的博客 3318

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Python-Pandas之两个Dataframe的比较(二)

今天找到一个好方法,可以直接比较两个df,这个方法包含在hashlib库里面,代码如下: import hashlib, sys files = [] try: files = [sys.argv[1], sys.argv[2]] except: print('命令行未检测到文件参数。') # 这个方式可以通过命令行运行: # # python3 cmpfiles....

苏小败在路上 6882

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

python dataframe 取差集_Pandas中两个DataFrame的差集

在pandas中,两个DataFrame的差集并没有直接的库内置方法,现在我们希望有一种方法,就像python中set内置的求差集一样,来找到两个DataFrame的差集。>>> a=set((1,2,3))>>> a{1, 2, 3}>>> b=set((2,3,4))>>> b{2, 3, 4}>>> a...

weixin_39575047的博客 2401

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Python Pandas 如何实现两个 DataFrame 相减?

通过今天的分享,相信大家都已经掌握了如何用 Python Pandas 实现两个 DataFrame 相减的基本方法。从简单的直接相减到灵活的subtract()方法,再到处理不同索引和列名的情况,每一步都在帮助我们更加精准地处理复杂的数据问题。希望这篇文章能对你有所帮助!最后,不妨想象一下这样的场景:当你面对一堆杂乱无章的数据表格时,只需几行简洁而优雅的 Pandas 代码就能轻松搞定一切。这不仅体现了技术的魅力,更是展现了作为CDA 数据分析师的专业素养。

cda2024的博客 1237

Python 比较两个 CSV 文件并打印差异

本文将讨论比较两个 CSV 文件的各种方法。我们将包括执行此操作的最“Pythonic”方式和可帮助简化此任务的外部 Python 模块。最后,我们将包括一种使用 Pandas DataFrames 识别 CSV 文件差异的方法。我们假设需要比较的两个 CSV 文件的标题为 file1.csv 和 file2.csv。您可以根据需要重命名文件。还请在下面给出的代码片段中适当地替换文件名。

迹忆客 3907

python pandas compare比较两个DataFrame或Series对象的差异。

【代码】python pandas compare比较两个DataFrame或Series对象的差异。

人生苦短,何妨一试 874

两个dataframe比较,取两个不共有的数据

import pandas as pd table1 = r'C:\Users\Administrator\Desktop\result2.xls' data1 = pd.read_excel(table1, sheet_name = 2) df1 = pd.DataFrame(data1.iloc[:,[0,1,2,3,4,5]], columns=['company','city','strategy','fund_name','manager_name','fund_id']) table2 = .

何必说 2485

Python EXCEL 小技巧:总结和比较表格的差异(输出差异和数值相减)

比较两个表格的内容,并输出差异。

RandPython的博客 555

【Python】Python 读取Excel、DataFrame对比并选出差异数据,重新写入Excel

背景:我在2个系统下载出了两个Excel,现在通过对下载的2个Excel数据,并选出差异数据 从新写入一个新的Excel中。

qq_39666711的博客 878

Python 计算两个 Excel 文件的差异

通过使用 Python 和 Pandas 库,我们可以轻松地比较两个 Excel 文件并找出它们之间的差异。这种方法不仅提高了效率,还减少了人为错误的可能性。希望本文能帮助您更好地理解和应用这一技术。作者:[您的名字]日期:2023-10-06```

2501_91165213的博客 486
上一篇: Python 绘制基金和股票数据的季度变化对比散点图
下一篇: Python运行日记汇总小技巧
偷心伊普西隆
博客等级 码龄7年 511粉丝 65原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值