我有一个每行都有副本的数据帧.我想用新的列名如Num1到Num5返回非重复项. 例如,

import numpy as np
import pandas as pd
 
df1 = pd.DataFrame([[1,1,2,4,5,6,7,7],
           [2,5,6,7,22,23,34,7],
           [3,3,5,6,7,45,46,7],
           [4,6,7,14,29,32,33,7],
           [5,6,7,13,23,33,35,7],
           [6,1,6,7,8,9,10,7],
           [7,0,2,5,7,10,30,7]], 
           columns = ['Row_Num', 'Num1','Num2','Num3','Num4','Num5','Num6','Num7'])

我希望我的结果是这样的.

result = pd.DataFrame([[1,1,2,4,5,6],
           [2,5,6,22,23,34],
           [3,3,5,6,45,46],
           [4,6,14,29,32,33],
           [5,6,13,23,33,35],
           [6,1,6,8,9,10],
           [7,0,2,5,10,30]], 
           columns = ['Row_Num', 'Num1','Num2','Num3','Num4','Num5'])

推荐答案

另一个可能的 Select 是:

tmp = df1.set_index("Row_Num").T

out = (tmp.apply(lambda s: (t:=s.drop_duplicates(keep=False))
            .set_axis(tmp.index[:len(t)])).T.reset_index())

发帖主题:Re:Kolibrios

print(out.convert_dtypes())

   Row_Num  Num1  Num2  Num3  Num4  Num5
0        1     1     2     4     5     6
1        2     5     6    22    23    34
2        3     3     5     6    45    46
3        4     6    14    29    32    33
4        5     6    13    23    33    35
5        6     1     6     8     9    10
6        7     0     2     5    10    30

[7 rows x 6 columns]

Python相关问答推荐

Pandas 按照特殊规则保留每n行

FastAPI:使用APIRouter路由子模块功能

根据多列和一些条件创建新列

Python中两个矩阵的自定义Hadamard风格产物

customtkinter中使用的这个小部件的名称是什么

sys.modulesgo 哪儿了?

如何使用bs 4从元素中提取文本

Python会扔掉未使用的表情吗?

比较2 PD.数组的令人惊讶的结果

Gekko:Spring-Mass系统的参数识别

在Polars(Python库)中将二进制转换为具有非UTF-8字符的字符串变量

使用setuptools pyproject.toml和自定义目录树构建PyPi包

我们可以为Flask模型中的id字段主键设置默认uuid吗

在np数组上实现无重叠的二维滑动窗口

在pandas中使用group_by,但有条件

计算分布的标准差

如何保持服务器发送的事件连接活动?

LocaleError:模块keras._' tf_keras. keras没有属性__internal_'''

将标签移动到matplotlib饼图中楔形块的开始处

(Python/Pandas)基于列中非缺失值的子集DataFrame