|
|
要实现对“核算维度”列的信息拆分,我们可以利用Python的字符串处理和字典操作来完成。以下是详细的实现步骤:
### 步骤1:读取数据(以模拟数据为例,若从Excel读取可使用`pandas`)
首先,我们模拟表格中的数据,将“科目名称”和“核算维度”整理成列表:
```python
data = [
{"科目名称": "银行存款", "核算维度": "银行账户:17218801040017302,房县光谷环保科技有限公司;合作金融机构:中国农业银行股份有限公司房县支行"},
{"科目名称": "应收账款_应收销", "核算维度": "客商:KS10019077,房县住房和城乡建设局;产品服务类型:020103,提供劳务-加工劳务-水务运营;项目档案:XM9012655,房县城乡供排水一体化PPP项目"},
{"科目名称": "应收账款_应收服", "核算维度": "客商:KS10019077,房县住房和城乡建设局;项目档案:XM9012655,房县城乡供排水一体化PPP项目;产品服务类型:020103,提供劳务-加工劳务-水务运营"},
{"科目名称": "应收账款_应收服", "核算维度": "客商:KS10019077,房县住房和城乡建设局;项目档案:XM9012655,房县城乡供排水一体化PPP项目;产品服务类型:040302,现代服务-研发和技术服务-污水处理"},
{"科目名称": "应收账款_暂估款", "核算维度": "客商:KS10019077,房县住房和城乡建设局;项目档案:XM9012655,房县城乡供排水一体化PPP项目;产品服务类型:04010101,现代服务-建筑服务-工程服务-工程施工"},
{"科目名称": "应收账款_暂估款", "核算维度": "客商:KS10019077,房县住房和城乡建设局;项目档案:XM9012655,房县城乡供排水一体化PPP项目;产品服务类型:020103,提供劳务-加工劳务-水务运营"},
{"科目名称": "应收账款_暂估款", "核算维度": "客商:KS10019077,房县住房和城乡建设局;项目档案:XM9012655,房县城乡供排水一体化PPP项目;产品服务类型:040302,现代服务-研发和技术服务-污水处理"},
{"科目名称": "应付账款_暂估款", "核算维度": "客商:KS10019077,房县住房和城乡建设局;项目档案:XM9012655,房县城乡供排水一体化PPP项目;产品服务类型:01101,销售商品-水电气-水"},
{"科目名称": "预付账款_预付采", "核算维度": "客商:KS10003539,中国石化销售股份有限公司湖北十堰石油分公司;合同档案:999,通用合同档案;项目档案:XM9012655,房县城乡供排水一体化PPP项目"}
]
```
### 步骤2:定义拆分函数
我们需要将“核算维度”中的字符串按**分号(;)**拆分大类,再按**冒号(:)**拆分键和值,最终整理成字典:
```python
def split_dimension(dimension_str):
dim_dict = {}
# 先按分号拆分大类
categories = dimension_str.split(';')
for cat in categories:
# 再按冒号拆分键和值(假设冒号是唯一的分隔符)
key, value = cat.split(':', 1) # split(':', 1)表示只按第一个冒号拆分
dim_dict[key.strip()] = value.strip()
return dim_dict
```
### 步骤3:遍历数据并拆分
对每一条数据的“核算维度”执行拆分,并将结果保存:
```python
for item in data:
dimension = item["核算维度"]
split_result = split_dimension(dimension)
item["核算维度拆分"] = split_result # 新增列保存拆分结果
# 打印示例结果
for item in data[:2]: # 只打印前2条示例
print("科目名称:", item["科目名称"])
print("核算维度拆分:", item["核算维度拆分"])
print("-" * 50)
```
### 输出结果(示例)
```
科目名称: 银行存款
核算维度拆分: {'银行账户': '17218801040017302,房县光谷环保科技有限公司', '合作金融机构': '中国农业银行股份有限公司房县支行'}
--------------------------------------------------
科目名称: 应收账款_应收销
核算维度拆分: {'客商': 'KS10019077,房县住房和城乡建设局', '产品服务类型': '020103,提供劳务-加工劳务-水务运营', '项目档案': 'XM9012655,房县城乡供排水一体化PPP项目'}
--------------------------------------------------
```
### 若从Excel读取数据(拓展)
如果数据存储在Excel中,可使用`pandas`库读取并处理:
```python
import pandas as pd
# 读取Excel文件
df = pd.read_excel("你的文件.xlsx")
# 定义拆分函数并应用到“核算维度”列
df["核算维度拆分"] = df["核算维度"].apply(split_dimension)
# 保存结果(可选)
df.to_excel("拆分结果.xlsx", index=False)
```
通过以上代码,即可实现对“核算维度”列的结构化拆分,便于后续的数据分析和处理。 |
|