【问题标题】:Remove duplicates from rows in mydataset从数据集中的行中删除重复项
【发布时间】:2020-06-04 15:27:08
【问题描述】:

我有一个包含 436 列和 14k 行的 CSV 文件。 单元格内的数据格式为字符串。 例如,它看起来像这样:

A,A,A,B,B,C,C,,,,,
D,F,D,F,D,F,H,,,,,

我的目标是让每一行都具有其唯一值。像这样:

A,B,C,,,,,,,,
D,F,H,,,,,,,,

文件位于 csv/txt 文件中。我可以使用 Jupyter 笔记本(使用 Python3 或你们将提供的任何其他代码)。但这是我的工作环境。任何帮助都会很棒! 我还将 csv 作为数据框上传到笔记本。你们有什么建议?

【问题讨论】:

    标签: python dataframe duplicates rows data-cleaning


    【解决方案1】:

    首先,您必须将 csv 文件读入一个 numpy 数组。然后对于每一行,我会做类似的事情:

    import numpy as np
    s='A,A,A,B,B,C,C'
    f=s.split(',')
    np.unique(np.array(f))
    

    打印array(['A', 'B', 'C'], dtype='|S1')

    【讨论】:

      【解决方案2】:

      如果您将 csv 加载为数据框 df

          0   1   2   3   4   5   6
      0   A   A   A   B   B   C   C
      1   D   F   D   F   D   F   H
      

      遍历行并找到每行的唯一值:

      unique_vals = []
      for _, row in df.iterrows():
          unique_vals.append(row.unique().tolist())
      unique_vals
      
      [['A', 'B', 'C'], ['D', 'F', 'H']]
      

      你没有提到返回数据类型,所以我返回了一个列表。

      编辑:如果数据集太大,请考虑使用 read_csv 中的chunk_size 选项。

      【讨论】:

      • 是否可以将其转换回数据框?我该怎么做?
      • @YoavBarzilai 只有当每行中唯一值的数量相同时,才能将其转换为数据框。如果是这种情况,您可以使用pd.DataFrame(unique_vals)
      猜你喜欢
      • 2013-08-27
      • 1970-01-01
      • 2016-05-16
      • 1970-01-01
      • 2019-06-11
      • 1970-01-01
      • 1970-01-01
      • 2015-03-14
      • 1970-01-01
      相关资源
      最近更新 更多