使用 Pandas (Python) 清理分类数据
Cleaning categorical data with Pandas (Python)
我有一个看起来像这样的数据集(见下文)。我想创建一个新列,当 'NASA' 单独或作为较大字符串的一部分出现在第一列时,该列包含值 'NASA'。如何为 python 中的 pandas 数据框执行此操作?
谢谢!
index
selection
NASA- 16
51
NASA- 12
39
NASA- 8
38
NASA- 13
38
NASA- 9
34
NASA- 10
32
NASA- 15
30
NASA- 14
28
NASA- 17
27
NASA- 18
26
1990 NASA group
25
NASA- 11
23
NASA Astronaut Group 8
20
NASA- 5
19
NASA- 19
18
NASA-8
18
NASA-9
16
1978 NASA group
15
1996 NASA group
15
TsPK-8
15
NPOE-4
15
TsPK-2
14
您可以使用 np.where
和 str.contains
来检查您的索引列中是否有 'NASA'。请注意,您可以使用 case=False
使搜索不区分大小写:
df['new_col'] = np.where(df['index'].str.contains('nasa',case=False),'NASA',"")
df
Out[11]:
index selection new_col
0 NASA- 16 51 NASA
1 NASA- 12 39 NASA
2 NASA- 8 38 NASA
3 NASA- 13 38 NASA
4 NASA- 9 34 NASA
5 NASA- 10 32 NASA
6 NASA- 15 30 NASA
7 NASA- 14 28 NASA
8 NASA- 17 27 NASA
9 NASA- 18 26 NASA
10 1990 NASA group 25 NASA
11 NASA- 11 23 NASA
12 NASA Astronaut Group 8 20 NASA
13 NASA- 5 19 NASA
14 NASA- 19 18 NASA
15 NASA-8 18 NASA
16 NASA-9 16 NASA
17 1978 NASA group 15 NASA
18 1996 NASA group 15 NASA
19 TsPK-8 15
20 NPOE-4 15
21 TsPK-2 14
我有一个看起来像这样的数据集(见下文)。我想创建一个新列,当 'NASA' 单独或作为较大字符串的一部分出现在第一列时,该列包含值 'NASA'。如何为 python 中的 pandas 数据框执行此操作?
谢谢!
index | selection |
---|---|
NASA- 16 | 51 |
NASA- 12 | 39 |
NASA- 8 | 38 |
NASA- 13 | 38 |
NASA- 9 | 34 |
NASA- 10 | 32 |
NASA- 15 | 30 |
NASA- 14 | 28 |
NASA- 17 | 27 |
NASA- 18 | 26 |
1990 NASA group | 25 |
NASA- 11 | 23 |
NASA Astronaut Group 8 | 20 |
NASA- 5 | 19 |
NASA- 19 | 18 |
NASA-8 | 18 |
NASA-9 | 16 |
1978 NASA group | 15 |
1996 NASA group | 15 |
TsPK-8 | 15 |
NPOE-4 | 15 |
TsPK-2 | 14 |
您可以使用 np.where
和 str.contains
来检查您的索引列中是否有 'NASA'。请注意,您可以使用 case=False
使搜索不区分大小写:
df['new_col'] = np.where(df['index'].str.contains('nasa',case=False),'NASA',"")
df
Out[11]:
index selection new_col
0 NASA- 16 51 NASA
1 NASA- 12 39 NASA
2 NASA- 8 38 NASA
3 NASA- 13 38 NASA
4 NASA- 9 34 NASA
5 NASA- 10 32 NASA
6 NASA- 15 30 NASA
7 NASA- 14 28 NASA
8 NASA- 17 27 NASA
9 NASA- 18 26 NASA
10 1990 NASA group 25 NASA
11 NASA- 11 23 NASA
12 NASA Astronaut Group 8 20 NASA
13 NASA- 5 19 NASA
14 NASA- 19 18 NASA
15 NASA-8 18 NASA
16 NASA-9 16 NASA
17 1978 NASA group 15 NASA
18 1996 NASA group 15 NASA
19 TsPK-8 15
20 NPOE-4 15
21 TsPK-2 14