如何在Pandas中按点(.)分割文本并在DataFrame中新增列
实现DataFrame文件后缀映射为文件类型
现有DataFrame df1 如下:
| Filename |
|---|
apple.pdf |
sample.xlsm |
new.docx |
Arigo.tiff |
sec.docx |
sample2.xlsm |
需要生成包含Filename和Filetype列的DataFrame df2:
| Filename | Filetype |
|---|---|
apple.pdf | |
sample.xlsm | excel |
new.docx | document |
Arigo.tiff | tiff |
sec.docx | document |
sample2.xlsm | excel |
实现步骤
- 提取文件名中的后缀部分
- 定义后缀与目标文件类型的映射规则
- 将后缀转换为对应类型并新增列到原DataFrame
代码实现
首先导入依赖库并构造示例DataFrame:
import pandas as pd # 构造示例df1 data = {'Filename': ['apple.pdf', 'sample.xlsm', 'new.docx', 'Arigo.tiff', 'sec.docx', 'sample2.xlsm']} df1 = pd.DataFrame(data)
定义后缀映射字典:
type_mapping = { 'pdf': 'PDF', 'xlsm': 'excel', 'docx': 'document', 'tiff': 'tiff' }
生成Filetype列:
# 分割文件名取后缀,转小写后映射为对应类型 df1['Filetype'] = df1['Filename'].str.split('.').str[-1].str.lower().map(type_mapping)
执行后df1即为目标df2,可通过print(df1)查看结果。
代码说明
str.split('.').str[-1]:按点分割文件名,取最后一段作为后缀str.lower():统一后缀为小写,避免大小写差异导致映射失败map(type_mapping):利用预定义字典完成后缀到文件类型的转换
内容的提问来源于stack exchange,提问作者Vivek kanna Jayaprakash
相关产品推荐
相关产品推荐

