我相信我的问题真的很简单,一定有一种非常简单的方法来解决这个问题,但是由于我对 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) 上的任何内容。
希望我能做到简洁和准确。非常感谢您在这方面的帮助!
请您参考如下方法:
简单的方法是:
- 首先,您必须设置没有空格的列名。
您必须为
df1和df2获取Column_C的unique值并创建列表。l=[df1['Column_C'].unique()[0],df2['Column_C'].unique()[0]]
然后将 NOT IN 与 df 一起使用。
df3 = df[~df.Column_C.isin(l)]
