生成的代码没有满足我的需求,例如有的股票代码的控制人性质是3110,3000,3000我只想要保留第一个编号,不是所有股票代码都有多个控制人性质且控制人性质都不一样,我想要将拥有多个控制人性质的仅保留第一个控制人性质代码
时间: 2024-03-21 22:38:52 浏览: 39
永磁同步电机FOC控制Simulink从零开始建模到代码生成开发板演示
5星 · 资源好评率100%
非常抱歉,我理解有误。你可以使用 Pandas 的 apply 方法,针对实际控制人性质这一列进行处理。具体来说,我们可以定义一个函数,将实际控制人性质分割成多个编号,然后仅保留第一个编号。代码如下:
```python
import pandas as pd
# 读取原始数据
df = pd.read_excel('C:\\Users/19242/Desktop/stockdata.xlsx')
# 将季度数据转换为年度数据
df['日期'] = pd.to_datetime(df['日期'])
df['年份'] = df['日期'].dt.year
df['长期负债'] = df['长期负债合计']
# 处理缺失值
df.fillna(df.mean(), inplace=True)
# 定义函数,处理实际控制人性质列
def process_control(x):
control_list = x.split(',')
return control_list[0]
# 对实际控制人性质列应用函数
df['实际控制人性质'] = df['实际控制人性质'].apply(process_control)
df_grouped = df.groupby(['股票代码', '年份', '实际控制人性质', '行业代码']).mean().reset_index()
df_grouped = df_grouped[['股票代码', '年份', '实际控制人性质', '行业代码', '短期负债', '长期负债', '资产负债率']]
df_grouped = df_grouped.fillna(df_grouped.mean())
# 输出到新文件
df_grouped.to_excel('C:\\Users/19242/Desktop/python/2/a2.xlsx', index=False)
```
这样,对于每个具有多个实际控制人性质的企业,仅保留第一个控制人性质代码,并保留其它内容不变。
阅读全文