使用Pandas搜索CSV文件(唯一ID' s) - Python

时间:2017-07-26 01:39:23

标签: python pandas

我正在研究搜索具有242000行的csv文件,并希望将其中一列中的唯一标识符相加。列名是' logid'并且有许多不同的值,即1002,3004,5003.我想使用熊猫数据帧搜索csv文件,并总结唯一标识符的数量。如果可能,我想创建一个存储此信息的新csv文件。例如,如果我发现有50个logid的1004,那么我想创建一个csv文件,其列名为1004,下面显示的是50。我会为所有唯一标识符执行此操作,并将它们添加到相同的csv文件中。我对此完全陌生并做了一些搜索,但不知道从哪里开始。

谢谢!

1 个答案:

答案 0 :(得分:0)

由于您没有发布您的代码,我只能回答一下它的一般工作方式。

  1. 使用pandas.read_csv
  2. 将CSV文件加载到pd.Dataframe中
  3. 保存所有出现的值> 1使用pandas.DataFrame.drop_duplicates分隔df1,如:

    DF1 = df.drop_duplicates(保持="第一)

  4. - >这将返回一个DataFrame,它只包含第一次出现重复值的行。例如。如果值1000在5行中,则只返回第一行而其他行将被删除。

    - >应用df1.shape [0]将返回df中重复值的数量。

    3.如果你想存储包含"重复值的所有df行"在一个单独的CSV文件中你必须像这样做:

    df=pd.DataFrame({"A":[0,1,2,3,0,1,2,5,5]}) # This should represent your original data set
    print(df)
    
    df1=df.drop_duplicates(subset="A",keep="first") #I assume the column with the duplicate values is columns "A" if you want to check the whole row just omit the subset keyword.
    
    print(df1)
    list=[]
    
    
    for m in df1["A"]:
        mask=(df==m)
        list.append(df[mask].dropna())
    
    for dfx in range(len(list)):
        name="file{0}".format(dfx)
        list[dfx].to_csv(r"YOUR PATH\{0}".format(name))