Python 如何连接两个唯一数组并删除';南';?

Python 如何连接两个唯一数组并删除';南';?,python,pandas,jupyter-notebook,Python,Pandas,Jupyter Notebook,使用,我想提取列中的所有唯一类型:“Type 1”和“Type 2”,然后打印出来。到目前为止,我已经能够将两列中的唯一值连接到一个数组中。现在我无法从阵列中删除“nan” 我的代码: import pandas as pd import numpy as np df = pd.read_csv("/Users/edwinandrew/Documents/Datasets/Pokemon.csv") type_class1 = df['Type 1'].unique() type_class2

使用,我想提取列中的所有唯一类型:“Type 1”和“Type 2”,然后打印出来。到目前为止,我已经能够将两列中的唯一值连接到一个数组中。现在我无法从阵列中删除“nan”

我的代码:

import pandas as pd
import numpy as np
df = pd.read_csv("/Users/edwinandrew/Documents/Datasets/Pokemon.csv")
type_class1 = df['Type 1'].unique()
type_class2 = df['Type 2'].unique()
all_types = np.concatenate((type_class1, type_class2))
print(all_types)
输出:

['Grass' 'Fire' 'Water' 'Bug' 'Normal' 'Poison' 'Electric' 'Ground'
 'Fairy' 'Fighting' 'Psychic' 'Rock' 'Ghost' 'Ice' 'Dragon' 'Dark' 'Steel'
 'Flying' 'Poison' nan 'Flying' 'Dragon' 'Ground' 'Fairy' 'Grass'
 'Fighting' 'Psychic' 'Steel' 'Ice' 'Rock' 'Dark' 'Water' 'Electric'
 'Fire' 'Ghost' 'Bug' 'Normal']

我尝试使用
x=x[~numpy.isnan(x)]
查看这是否会删除nan值,但我得到了一个错误。解决此问题的最佳方法是什么?

您需要使用
dropna

type_class1 = df['Type 1'].dropna().unique()
type_class2 = df['Type 2'].dropna().unique()
用这个

type_class1=df['type 1'].dropna().unique() type_class2=df['type 2'].dropna().unique()

或者使用fillna()方法

stack
+
dropna
创建一个系列,删除缺少的值并调用unique

import pandas as pd
import numpy as np

df = pd.DataFrame({'Type_1': ['Grass', 'Fire', 'Steel', 'Ghost'],
                   'Type_2': [np.NaN, 'Water', 'Fire', 'Grass']})

df[['Type_1', 'Type_2']].stack().dropna().unique()
#array(['Grass', 'Fire', 'Water', 'Steel', 'Ghost'], dtype=object)
我尝试使用x=x[~numpy.isnan(x)]来查看这是否会删除nan值,但我得到了一个错误。请共享所有相关代码以及整个错误消息。