【Python】【pandas】合并两个dataframe:df1和df2,保留df1和df2的所有列,按照df2的列排序在前,df1中未包含在df2的列在后

news/2025/2/14 0:31:51/

合并df1df2时保留df1df2的所有列,并且按照df2的列顺序排序,可以按照以下步骤进行操作:

import pandas as pd# 示例数据
data1 = {'F': [1, 2, 3],'A': [1, 2, 3],'B': [4, 5, 6],'E': [4, 5, 6]}
df1 = pd.DataFrame(data1)data2 = {'C': [7, 8, 9],'A': [10, 11, 12],'B': [13, 14, 15],'D': [16, 17, 18]}
df2 = pd.DataFrame(data2)# 获取目标列顺序
columns_order = list(df2.columns) + list(df1.columns)
columns_order = [x for i, x in enumerate(columns_order) if x not in columns_order[:i]]# 合并df1和df2
merged_df = pd.concat([df1, df2], ignore_index=True)# 按照df2的列顺序重新排列列
merged_df = merged_df.reindex(columns=columns_order)print(merged_df)

结果如下:

     C   A   B     D    F    E
0  NaN   1   4   NaN  1.0  4.0
1  NaN   2   5   NaN  2.0  5.0
2  NaN   3   6   NaN  3.0  6.0
3  7.0  10  13  16.0  NaN  NaN
4  8.0  11  14  17.0  NaN  NaN
5  9.0  12  15  18.0  NaN  NaN

通过以上步骤,我们成功按照df2的列顺序合并了df1df2,并保留了两个DataFrame的所有列,包括B列。在合并后的结果中,df1的列保留了原始的顺序,而df2的列按照df2的顺序进行了排序。缺失的部分用NaN进行填充。

灵感来自:

要删除列表中重复的元素,只保留先出现的元素,可以使用列表推导式和集合(Set)来实现。以下是示例代码:

original_list = [1, 2, 3, 2, 4, 1, 5, 3]# 使用列表推导式和集合来删除重复元素,只保留先出现的
unique_list = [x for i, x in enumerate(original_list) if x not in original_list[:i]]print(unique_list)

输出结果为:

[1, 2, 3, 4, 5]

在这个例子中,我们使用列表推导式和集合来删除重复元素。在列表推导式中,我们遍历原始列表original_list,并使用切片original_list[:i]来获取当前元素之前的子列表。然后,使用条件x not in original_list[:i]来判断当前元素是否在子列表中出现过。如果没有出现过,则将该元素添加到新的列表unique_list中。通过这种方式,我们可以只保留先出现的元素,并删除重复的元素。


http://www.ppmy.cn/news/752170.html

相关文章

[ICCV2019]DF2Net: A Dense-Fine-Finer Network for Detailed 3D Face Reconstruction

标题:DF2Net: A Dense-Fine-Finer Network for Detailed 3D Face Reconstruction 链接:https://openaccess.thecvf.com/content_ICCV_2019/papers/Zeng_DF2Net_A_Dense-Fine-Finer_Network_for_Detailed_3D_Face_Reconstruction_ICCV_2019_paper.pdf 这…

论文阅读26 | DF2AM: Dual-level Feature Fusion and Affinity Modeling for RGB-Infrared reid

论文:DF2AM: Dual-level Feature Fusion and Affinity Modeling for RGB-Infrared Cross-modality Person Re-identification 创新点 本文的创新点在于,引入了局部特征分块加权求和再和全局特征相加计算损失;还有亲和力建模每个图像和该批所…

DF2Mysql的例子以及封装

pandas的to_sql()使用如下 import pandas as pd from sqlalchemy import create_enginehost port 3306 db user password engine create_engine(str(r"mysqlpymysql://%s:" %s "%s/%s") % (user, password, host, db))df pd.read_csv(./datas…

DF2NET三维模型部署

经过不懈的努力,DF2NET终于在我的小MAC部署起来了。其中遇到了不少的问题,这里来记录一下。 github链接:https://github.com/xiaoxingzeng/DF2Net/ 1.环境要求 由于0.4.0版本的pytorch安装老报错,这里将版本修改为了0.4.1&…

Python 玩转数据 17 - Pandas 数据处理 合并 pd.merge() df1.merge(df2)

引言 在进行数据合并时,Excel 数据,我们用到最多的是 vlookup 函数,SQL 数据库数据,join 用得最多,都可以实现多表匹配查询,合并等功能。Python 的 Pandas 也有有类似的功能函数,就是我们今天要…

机器学习数据科学包(二)——Pandas入门

目录 二、查看数据 三、选择 四、缺失值处理 五、相关操作 六、合并 七、分组 八、重塑(Reshaping) 九、时间序列 十、Categorical 十一、画图 十二、导入和保存数据 本文对十分钟入门Pandas进行翻译详见英文版https://pandas.pydata.org/pan…

Pandas常用操作命令(四)——数据切片、筛选

文章目录 🏳️‍🌈 4. 数据切片、筛选4.1 输出城市为上海的行4.2 输出城市为上海或广州的行4.3 输出城市名称中含有‘海’字的行4.4 输出城市名称以‘海’字开头的行4.5 输出城市名称以‘海’字结尾的行4.6 输出所有姓名,缺失值用Null填充4.7…

Redis持久化之RDB和AOF

6、Redis持久化 6.1、背景 首先Redis作为一种缓存性数据库,如果缓存中有数据,他可以很快的把数据返回给客户,至于为什么他可以很快的将数据返回给客户,主要是因为他是一种内存性数据库,不需要额外的IO操作&#xff0…