文章目录
- 摘要
- 1. 背景介绍
- 2. 原始数据简介
- 海关数据
- 3. 企业资质添加:代码实现
- 3.1 表格拼接
- 3.2 企业资质属性添加
- 4. 海关数据添加
- 5. 总结
摘要
本文探讨了如何通过企业资质和海关出口数据的加入,丰富企业信息表的维度,为企业分析提供更强大的数据支持。我们从实际业务需求出发,利用 Python 和 Pandas 库实现数据清洗、表格拼接与字段合并,并通过代码示例,展示如何实现自动化数据扩展。最终结果是更全面的企业信息表,为后续数据分析和决策提供坚实基础。
1. 背景介绍
企业信息表通常包含基础字段,如公司名称、经营范围和地理位置。然而,在实际的企业分析中,光靠这些数据往往不够。例如,我们可能需要以下信息:
- 企业资质:例如企业是否属于专精特新、是否上市等;
- 海关出口数据:例如企业的出口额等。
以下是原始企业信息表的样例:
分析需求:
- 企业资质:根据企业是否符合特定资质标记为 1(符合)或 0(不符合)。
- 海关数据:将匹配的出口额字段添加到表中。
经过处理后,表格效果如下:
最终,我们可以用这些新增字段对企业进行更精准的评估。
2. 原始数据简介
海关数据
以下为海关数据的样例:
处理思路:
- 判断企业名称是否出现在海关数据表的“企业名称”列中。
- 如果匹配,将对应的2016年出口额添加到企业信息表中。
3. 企业资质添加:代码实现
3.1 表格拼接
以下是企业资质表的拆分样例:
我们需要将这些分散的表格合并为一个完整的资质表。合并后的结果如下:
代码实现如下:
python">import os
import pandas as pd# 读取文件
def read_file_by_pandas(file, **kwargs):if file.endswith("xls") or file.endswith("xlsx"):return pd.read_excel(file, **kwargs)elif file.endswith("csv"):return pd.read_csv(file, **kwargs)return None# 拼接去重
def concat_drop_duplicates(kw, folder, output_file):all_data = []for file in os.listdir(folder):if not file.startswith(kw):continuedf = read_file_by_pandas(os.path.join(folder, file))if df is not None:all_data.append(df)combined_df = pd.concat(all_data)unique_df = combined_df.drop_duplicates()unique_df.to_csv(output_file, index=False)print(f"表格已合并并去重,保存至 {output_file}")
使用示例:
python">concat_drop_duplicates("13 民营科技企业", ".", "13_民营科技企业.csv")
这段代码将当前文件夹下所有以 “13 民营科技企业” 开头的表格合并,并保存为新的 CSV 文件。
3.2 企业资质属性添加
为企业信息表添加资质字段的代码如下:
python"># 定义映射函数
def get_trans_func(df):companies = set(df["企业名称"].str.strip())def func(item):return 1 if isinstance(item, str) and item.strip() in companies else 0return func# 添加企业资质字段
def add_attr(raw_file, attr_folder):raw_df = read_file_by_pandas(raw_file)for file in os.listdir(attr_folder):tmp_df = read_file_by_pandas(os.path.join(attr_folder, file))if tmp_df is not None:attr = file.split(".")[0]raw_df[attr] = raw_df["企业名称"].apply(get_trans_func(tmp_df))output_file = os.path.join(os.path.dirname(raw_file), "企业资质扩展.csv")raw_df.to_csv(output_file, index=False)print(f"企业资质扩展表已保存至 {output_file}")
示例:
python">raw_folder = "光电子"
attr_folder = "/path/to/企业资质名单表"
for file in os.listdir(raw_folder):add_attr(os.path.join(raw_folder, file), attr_folder)
运行后,原始企业表会多出对应的资质字段,效果如下:
4. 海关数据添加
最后,我们将海关数据添加到企业信息表中。思路是利用 pandas.merge
方法,将海关表中的出口额字段合并进来。代码如下:
python">folder = "光电子"
hg_df = pd.read_excel("/path/to/海关库.xlsx")for file in os.listdir(folder):file_name = os.path.join(folder, file)if file_name.endswith("企业资质.csv"):df = read_file_by_pandas(file_name)merged_df = pd.merge(df, hg_df, on="企业名称", how="left")output_file = os.path.join(folder, f"{os.path.basename(file).split('.')[0]}_海关.xlsx")merged_df.to_excel(output_file, index=False)print(f"海关数据已添加,保存至 {output_file}")
关键参数解释:
how="left"
:确保即使企业不在海关表中,该条数据也不会丢失。
最终,处理后的表格如下:
5. 总结
通过本文的步骤,我们实现了:
- 企业资质字段的自动化添加;
- 海关出口数据的整合;
- 构建了更丰富、实用的企业信息表,为企业分析提供强有力的数据支持。