首页 > 解决方案 > 将重复行从列的子集移动到 Python 中的另一个数据框

问题描述

使用 Python 和 Pandas,我想在数据框中找到所有具有重复行的列,并将它们移动到另一个数据框中。例如我可能有:

cats, tigers, 3.5, 1, cars, 2, 5
cats, tigers, 3.5, 6, 7.2, 22.6, 5
cats, tigers, 3.5, test, 2.6, 99, 52.3

我想要猫、老虎、3.5 合一数据框

cats, tigers, 3.5

在我想要的另一个数据框中

   1, cars, 2, 5
   6, 7.2, 22.6, 5
   test, 2.6, 99, 52.3

代码应检查每一列是否有重复行,并且只删除所有行中出现重复的列。

  1. 在某些情况下,所有列都没有重复。
  2. 有时不止前三列有重复。它应该检查所有列,因为任何列中都可能出现重复

我怎么能这样做?

标签: pythonpandas

解决方案


您可以使用

df1 = pd.DataFrame(df.val.str.extract('([a-zA-Z ]+)', expand=False).str.strip().drop_duplicates()) #'val' is the column in which you have these values
print(df1)

输出

     val
0   ABCD

df2 = pd.DataFrame(df.val.str.extract('([0-9]+)', expand=False).str.strip().drop_duplicates()) #'val' is the column in which you have these values
print(df2)

输出

     val
0   1234
1   6578
2   4432

推荐阅读