情景引入
如上图,一家上市公司只有一行数据,对应多次财务违规年份,想要变成纵向的数据,即一次财务违规对应一行数据,一家上市公司有多行数据的形式(如果有多次违规),如下图所示:
实现过程
一、先根据“,”将违规年份进行分列
二、编写Python程序,思路是逐行进行处理,在每一行中判断单元格中的违规年份是否为空,不为空则新建一行,将该年份写入作为一行新的数据,具体代码如下:
import csv
import pandas as pd
import numpy as np
df0=pd.DataFrame({
'symbol':[],
'declaredate':[],
'promulgator':[],
'supervisor':[],
'violationtype':[],
'violationyear':[],
'punishmenttype':[],
'penalty':[],
'violationyear0':[]
})
df=pd.read_csv('test.csv',encoding