如何找出并打印第一个DataFrame相对第二个DataFrame缺失的行
找出第一个DataFrame中独有的行
要找出df1中存在但df2中没有的行,可以用以下两种方法实现:
方法1:使用merge配合indicator参数
通过left连接方式合并两个DataFrame,开启indicator=True标记行的来源,最后筛选出仅存在于df1的行:
import pandas as pd data1 = {'first_column': ['2', '3'], 'second_column': ['2', '2'], 'third_column':['2', '1'], } data2 = {'first_column': ['2', '2'], 'second_column': ['2', '2'], 'third_column':['2', '2'], } df1 = pd.DataFrame(data1) df2 = pd.DataFrame(data2) # 合并并标记行的来源 merged_df = df1.merge(df2, how='left', indicator=True) # 筛选仅在df1中存在的行,删除标记列 result = merged_df[merged_df['_merge'] == 'left_only'].drop(columns='_merge') print(result)
方法2:使用concat配合drop_duplicates
将df1和两次df2合并后,移除所有重复行,剩余内容就是df1独有的行:
import pandas as pd data1 = {'first_column': ['2', '3'], 'second_column': ['2', '2'], 'third_column':['2', '1'], } data2 = {'first_column': ['2', '2'], 'second_column': ['2', '2'], 'third_column':['2', '2'], } df1 = pd.DataFrame(data1) df2 = pd.DataFrame(data2) result = pd.concat([df1, df2, df2]).drop_duplicates(keep=False) print(result)
预期输出
first_column second_column third_column 1 3 2 1
内容的提问来源于stack exchange,提问作者yoopiyo
相关产品推荐
相关产品推荐

