我有两个数据帧,我试图比较这两个数据帧,所以如果df1的值在df中,就删除这一行。我列出了这两列,它们的名字一模一样。你知道吗
df Permit Number Sub Permit
BLD-00045 NaN
ELE-2019 BLD-00045
PLM-2018 BLD-00045
df1 Permit Number Sub Permit
BLD-00001 NaN
ELE-2019 BLD-00045
PLM-7777 BLD-00045
在下面的代码中,我重命名了另一个数据帧(df3)中的列,以便将它们合并到一个新的数据帧(df1)中。我尝试将索引设置为许可值,但不希望删除索引(因为我希望保留许可编号),然后比较它们。你知道吗
我的目标是保留BLD-00045和PLM-2018行,但是删除ELE-2019,因为这两个数据帧之间是相等的。你知道吗
df3.rename(columns={'permit_num': "Permit Number"}, inplace=True)
df1 = pd.merge(df, df3, on='Permit Number')
df.set_index('Permit Number', inplace=False)
df1.set_index('Permit Number', inplace=False)
df = df.loc[df['Permit Number'] != df1['Permit Number']]
print(df)
我不断得到ValueError:只能比较相同标记的Series对象。你知道吗
一种方法是使用
isin
和~
来反转逻辑例如:
如果我正确理解你的逻辑,你想删除上面的行^
您可以通过添加
~
来实现这一点,它可以反转逻辑或充当not isin
。你知道吗IIUC,您只需要df中存在的行,而不需要df1中的行。你知道吗
相关问题 更多 >
编程相关推荐