Python小程序解决不规则转置问题
情景引入
如上图,一家上市公司只有一行数据,对应多次财务违规年份,想要变成纵向的数据,即一次财务违规对应一行数据,一家上市公司有多行数据的形式(如果有多次违规),如下图所示:
实现过程
一、先根据“,”将违规年份进行分列
二、编写Python程序,思路是逐行进行处理,在每一行中判断单元格中的违规年份是否为空,不为空则新建一行,将该年份写入作为一行新的数据,具体代码如下:
import csv
import pandas as pd
import numpy as npdf0=pd.DataFrame({'symbol':[],'declaredate':[],'promulgator':[],'supervisor':[],'violationtype':[],'violationyear':[],'punishmenttype':[],'penalty':[],'violationyear0':[]
})df=pd.read_csv('test.csv',encoding='gbk')
# print(df)
groups = df.groupby('symbol')
for key,value in groups:new_data = value.reset_index(drop=True)# print(new_data)for m in range(8, 19):if new_data.iloc[0, m] != "":print(new_data.iloc[0, m])x = pd.DataFrame({'symbol': [new_data.iloc[0, 0]],'declaredate':[new_data.iloc[0,1]],'promulgator':[new_data.iloc[0,2]],'supervisor':[new_data.iloc[0,3]],'violationtype':[new_data.iloc[0,4]],'violationyear':[new_data.iloc[0,5]],'punishmenttype':[new_data.iloc[0,6]],'penalty':[new_data.iloc[0,7]],'violationyear0': [new_data.iloc[0, m]]})print(x)df0 = pd.concat([df0, x])# print(df0)# df0 = df0.dropna()# print(df0)
print(df0)
df0.to_csv('res.csv')
Python小程序解决不规则转置问题相关推荐
- python降低图片分辨率_手把手:扫描图片又大又不清晰?这个Python小程序帮你搞定!...
原标题:手把手:扫描图片又大又不清晰?这个Python小程序帮你搞定! 大数据文摘作品 编译:HAPPEN.于乐源.小鱼 一位乐于分享学生精彩笔记的大学教授对于扫描版的文件非常不满意--颜色不清晰并且 ...
- 【有趣的Python小程序】Python多个简单上手的库制作WalkLattice 走格子游戏 (思路篇)上
篇写上一个思路篇,那么今天我们就来完成这一项工作 源代码和配套文件 链接: https://caiyun.139.com/m/i?135ClY1yWrSKX 提取码:e4pq 复制内容打开中国移动云盘 ...
- 微信小程序 解决请求服务器手机预览请求不到数据的方法
微信小程序 解决请求服务器手机预览请求不到数据的方法 微信小程序的文档中明确说明了所有的请求是必须使用https的,以没用过https,由于小程序,不得不接触到https,研究了好长时间把tomcat ...
- python恶搞小程序-有趣的python小程序
有趣的python小程序 1.密码生成器x=int(input()) print(''.join(__import__('random').choice('QWERTYUIOPASDFGHJKLZXC ...
- python日历小程序_一个查看网络设备信息Python小程序
原标题:一个查看网络设备信息Python小程序 网络编程中,最常见的一个问题就是,获取设备信息. 首先我们,要学习如何获取本机的网络信息.我们将用到标准库中的socket库.假如说,我们要查看本机的 ...
- 几个python小程序
python小程序 1-100求和 1 def Sum(x, y): 2 return x+y 3 print reduce(lambda x,y:x+y,range(1,101)) 4 5 i = ...
- 人工智能python小程序_Python:一个可以套路别人的python小程序
一个可以套路别人的python小程序~ 先简要介绍一下程序. 程序是使用pycharm工具,python语言所写.程序包括客户端 client.py 和服务器端 server.py 两部分,利用了py ...
- python如何运行一个python程序_python如何运行?第一个python小程序示范
我们想要用python编程首先要做的就是安装一些工具,随后学会应用.那么问题来了,我们需要安装什么?python又是怎样运行的呢? 安装什么工具? 1.Python 3.6.5(我安装的,还有很多版本 ...
- 有趣的python小程序
有趣的python小程序 1.密码生成器 x=int(input()) print(''.join(__import__('random').choice('QWERTYUIOPASDFGHJKLZX ...
最新文章
- 万字长文总结八大经典内部排序算法
- mysql怎么回复.from的数据库_mysql怎么回复.from的数据库
- 索引会自动更新吗_mysql的B+树中数据存放结构和索引常见问题你会吗?
- 实验5 类的继承、派生和多态(2)
- Spring :读取配置文件(.properties、.yam)相关注解
- 实习面试问题整理(一)
- 高中信息技术——Access数据库刷题点整理
- 力特usb转232驱动程序下载_电脑USB接口、U盘接口不能使用的原因及解决方法
- 【学习笔记】矩阵分解Matrix Factorization及延伸阅读
- 新能源车辆越来越多了,车牌识别核心技术
- Android性能优化(一):APP启动优化
- k8s集群svc端口范围,nfs做StorageClass运行故障
- eMMC SI 总结
- Android项目实战:简单天气-刘桂林-专题视频课程
- 使用ArrayList集合实现学生管理系统
- poj3414 - Pots
- 网吧如何修改dns服务器地址,网吧如何修改dns服务器地址
- 基于Java毕业设计学生在线评教系统源码+系统+mysql+lw文档+部署软件
- 机器学习——照片OCR
- 热电偶技术及热电偶仿真原理
热门文章
- java 方法过时_如何将方法标记为过时或已弃用?
- 安溪工业机器人_安溪茶校工业机器人专业招生
- MyEclipse10.1正式版官网下载(附Win+Llinux激活方法、汉化包)
- ABP框架(.Net Core)-分析初始化过程
- 云转码系统源码|云转码源码PHP
- springboot多模块打包报错,找不到xxx包,找不到xxx类
- 网络编程与Tomcat服务器
- ISO体系认证,AAA信用,荣誉证书,商标版权
- 一文梳理无监督对比学习(MoCo/SimCLR/SwAV/BYOL/SimSiam)
- R语言之实现Excel的数据透视功能