我正在研究搜索具有242000行的csv文件,并希望将其中一列中的唯一标识符相加。列名是' logid'并且有许多不同的值,即1002,3004,5003.我想使用熊猫数据帧搜索csv文件,并总结唯一标识符的数量。如果可能,我想创建一个存储此信息的新csv文件。例如,如果我发现有50个logid的1004,那么我想创建一个csv文件,其列名为1004,下面显示的是50。我会为所有唯一标识符执行此操作,并将它们添加到相同的csv文件中。我对此完全陌生并做了一些搜索,但不知道从哪里开始。
谢谢!
答案 0 :(得分:0)
由于您没有发布您的代码,我只能回答一下它的一般工作方式。
保存所有出现的值> 1使用pandas.DataFrame.drop_duplicates分隔df1,如:
DF1 = df.drop_duplicates(保持="第一)
- >这将返回一个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))