Skip to main content
 首页 » 编程设计

python之根据逻辑非从现有数据框创建新数据框

2025年05月04日13davidwang456

我相信我的问题真的很简单,一定有一种非常简单的方法来解决这个问题,但是由于我对 Python 很陌生,所以我无法通过自己的优雅解决方案来解决它。这个问题很可能是重复的,但是我找不到它,所以,如果您看到我的问题的另一个问题,请将此作为另一种方式来详细说明。

所以,假设我有以下数据框:

import pandas as pd 
import matplotlib.pyplot as plt 
 
data = {'Column A': [300,300,450,500,500,750,600,300,800], 
'Column B': [1,1,2,2,3,3,0,2,3],  
'Column C': ["Value_1", "Value_2", "Value_3", "Value_4", "Value_1",  
"Value_2", "Value_3", "Value_4", "Value_5"]} 
df = pd.DataFrame(data, columns=['Column A','Column B', 'Column C']) 

从那里,我采用另外两个数据帧:

df1 = df.loc[(df['Column C'] == "Value_4")] 
 
df2 = df.loc[(df['Column C'] == "Value_3")] 

现在我想创建第三个数据框 (df3),它由存在于 df(现有数据框)中但不在 df1 和 df2 中的行组成。我不想提取或更改现有数据框 (df) 上的任何内容。

希望我能做到简洁和准确。非常感谢您在这方面的帮助!

请您参考如下方法:

简单的方法是:

  1. 首先,您必须设置没有空格的列名。

  1. 您必须为 df1 和 df2 获取 Column_C 的unique 值并创建 列表。

    l=[df1['Column_C'].unique()[0],df2['Column_C'].unique()[0]] 
    

  1. 然后将 NOT IN 与 df 一起使用。

    df3 = df[~df.Column_C.isin(l)]