Python 3.x I';我试图清理数据,但它返回了错误的列

Python 3.x I';我试图清理数据,但它返回了错误的列,python-3.x,dataframe,indexing,multiple-columns,data-cleaning,Python 3.x,Dataframe,Indexing,Multiple Columns,Data Cleaning,我试图从导入的数据集中提取一个数据集df19并从中清除信息,以创建第二个变量noneu19,您猜对了,欧盟国家将从列目的地 这是我跑的 noneu19=df19 noneu19["Destination"] = noneu19[~noneu19["Destination"].apply(str).str.contains('UK')] noneu19["Destination"] = noneu19[~noneu19["Destination"].apply(str).str.contains(

我试图从导入的数据集中提取一个数据集
df19
并从中清除信息,以创建第二个变量
noneu19
,您猜对了,欧盟国家将从列
目的地

这是我跑的

noneu19=df19
noneu19["Destination"] = noneu19[~noneu19["Destination"].apply(str).str.contains('UK')]
noneu19["Destination"] = noneu19[~noneu19["Destination"].apply(str).str.contains('SWEDEN')]
noneu19["Destination"] = noneu19[~noneu19["Destination"].apply(str).str.contains('SPAIN')]
...
set(noneu19["Destination"])
(替换其他25行)

它返回的是由于某种原因在一个完全独立的列
“Location”
中索引的数据列表

如果我设置(df19['Destination'])它返回我试图清理的列表,因此在原始数据集中这不是问题。是否有一种方法可以使它更容易/更干净/更好,或者有一种方法可以排除它返回错误列的原因


谢谢

您可以创建一个包含欧盟所有国家的
列表
,如

EU = ['SPAIN', 'ITALY'..., 'EU_COUNTRY']
然后像这样使用
isin
函数:

noneu19 = df19.loc[~df19["Destination"].isin(EU)].copy()
函数
isin
将检查该列的元素是否包含在作为参数传递的
列表中

通过这种方式处理问题,您将拥有更易于阅读和维护的代码