python pandas把表格数据的某一列做成['半导体','光学光电子','电子化学品','半导体概念','芯片概念','中芯国际概念','第三代半导体','有机硅概念','MCU芯片','汽车芯片','存储芯片','英伟达概念','光刻机','PCB芯片','光伏设备']
时间: 2024-10-19 21:17:08 浏览: 14
Python基于pandas爬取网页表格数据
5星 · 资源好评率100%
在Python的Pandas库中,如果你有一个DataFrame并且想要将某列的数据转换成指定的类别列表,比如['半导体', '光学光电子', ...],你可以这样做。假设你的DataFrame名为`df`,你需要操作的列名是`column_name`。首先,检查该列的数据是否已经在你的预期类别列表中,如果不在,可能需要先做数据清洗和预处理。
下面是基本的操作步骤:
1. **检查列数据**:
```python
unique_values = df[column_name].unique()
print(unique_values)
```
如果列中有缺失值或不符合预期的值,可以考虑删除或填充它们。
2. **如果列数据需要转换**:
- 创建一个新的Series,其中包含你的目标分类列表:
```python
category_list = ['半导体', '光学光电子', '电子化学品', ..., '光伏设备']
```
- 使用`map()`或`replace()`方法将列中的原始值映射到新的类别:
```python
df[column_name] = df[column_name].map(category_list)
```
或者,如果有些值不存在于`category_list`中,可以使用`fillna()`和`astype`方法处理:
```python
df[column_name] = df[column_name].replace(to_replace=unique_values[~unique_values.isin(category_list)], value=np.nan).fillna(category_list)
df[column_name] = df[column_name].astype('category').cat.codes + 1 # 将分类编码为从1开始的整数
```
注意,这里我们使用了`astype('category')`来创建一个类别数据类型,然后再通过`.cat.codes`将其转换为数值编码,最后加1避免值为0对应NaN。
3. **保存结果**:
现在,`df[column_name]`应该包含你想要的目标分类了。
阅读全文