我有两个不同长度的dataframes
。我想比较和删除df1中不可用的值(rows
)
以下是一个例子:
df1 = pd.DataFrame({'Filename':['image1','image1','image2','image3'],
'Name':['Dog','Cat','Cat', 'Cat'],
'values':['2','3','4','5'] })
df2 = pd.DataFrame({'Filename':['image1','image2','image3'],
'Name':['Dog','Cat', 'Cat'],
'values':['5','6','7'] })
df1
Filename Name values
0 image1 Dog 2
1 image1 Cat 3
2 image2 Cat 4
3 image3 Cat 5
df2
Filename Name values
0 image1 Dog 5
1 image2 Cat 6
2 image3 Cat 7
我期望2个数据帧(df1和df2)具有相同的长度和相同的Filename
和Name
,如下所示。我的目标是比较df1
和df2
的values
列与相同的Filename
和Name
df1
Filename Name values
0 image1 Dog 2
2 image2 Cat 4
3 image3 Cat 5
df2
Filename Name values
0 image1 Dog 5
1 image2 Cat 6
2 image3 Cat 7
我尝试将每一行与相应的df进行比较,如果不可用,则删除。(显然不是这样做的)
for i, j in df1.iterrows():
for m, n in df1.iterrows():
if m['Filename'] == i['Filename']:
if m['LabelName'] == i['LabelName']:
pass
else:
print('delete')
df2=df2.drop(i)
df1=df1.sort_values('Filename')
df2=df2.sort_values('Filename')
break
我还尝试实现groupby并与rows进行比较,但我遇到了ValueError: Can only compare identically-labeled Series objects
,因为索引不一样
有人能帮我吗?我试图寻找类似的问题,但没有遇到任何问题
这是一个不太像python的解决方案,但它确实起到了作用:
嘿,我觉得这工作做得很好
如果您想丢失索引并重置它,可以添加
相关问题 更多 >
编程相关推荐