Pandas:下降后值仍然存在
Pandas: after dropping value is still present
我试图删除值并绘制计数图,但值仍然存在。我做错了什么?
df = df.drop(df[(df['market_segment'] == 'Undefined') & (df['market_segment'] == 'Aviation')].index)
plt.figure(figsize=(12,8))
sns.countplot(x='market_segment',data=df,hue='hotel')
plt.show()
问题是您要删除 market_segment
同时为 Undefined
和 Aviation
的行。这显然是无稽之谈。
将您的 AND (&
) 更改为 OR (|
):
df = df.drop(df[(df['market_segment'] == 'Undefined') | (df['market_segment'] == 'Aviation')].index)
# ^ changed from & to |
这样,所有 market_segment
为 Undefined
或 Aviation
的行都将被删除。如果它是其中之一,它将被删除。
发生这种情况的原因有 2 个。
您过滤的第一行不正确
您的“market_segment”列可能是分类数据类型。在分类数据类型系列中,数据中未观察到的值可以传播到 seaborn
,因此转换为对象或字符串数据类型可以解决此问题。
df = (
df.loc[~df["market_segment"].isin(["Undefined", "Aviation"])]
.astype({"market_segment": str})
)
plt.figure(figsize=(12,8))
sns.countplot(x='market_segment',data=df,hue='hotel')
plt.show()
我试图删除值并绘制计数图,但值仍然存在。我做错了什么?
df = df.drop(df[(df['market_segment'] == 'Undefined') & (df['market_segment'] == 'Aviation')].index)
plt.figure(figsize=(12,8))
sns.countplot(x='market_segment',data=df,hue='hotel')
plt.show()
问题是您要删除 market_segment
同时为 Undefined
和 Aviation
的行。这显然是无稽之谈。
将您的 AND (&
) 更改为 OR (|
):
df = df.drop(df[(df['market_segment'] == 'Undefined') | (df['market_segment'] == 'Aviation')].index)
# ^ changed from & to |
这样,所有 market_segment
为 Undefined
或 Aviation
的行都将被删除。如果它是其中之一,它将被删除。
发生这种情况的原因有 2 个。
您过滤的第一行不正确
您的“market_segment”列可能是分类数据类型。在分类数据类型系列中,数据中未观察到的值可以传播到
seaborn
,因此转换为对象或字符串数据类型可以解决此问题。
df = (
df.loc[~df["market_segment"].isin(["Undefined", "Aviation"])]
.astype({"market_segment": str})
)
plt.figure(figsize=(12,8))
sns.countplot(x='market_segment',data=df,hue='hotel')
plt.show()