python将一行多字符转换为多行单字符方法
2024-10-21 02:55:39
笔者这次是第一次写东西,主要是想把在运用中的一些实例给记录下来,分享给那些和笔者有同样需求的人。可能分享的方法有些累赘或者不准确,还望各位大佬勿喷,因为笔者也是python小白,这些都是通过搜索汇总得出来的。
需求:
原数据格式:
我们要变成下面的样子:(这里是做了分组和求和)
解决需求:
#数据是直接从数据库中查出来的,所以直接导入excel的数据,也可以直接连数据进行查询。
import pandas as pd
info_new2=pd.read_excel("E:/路径/文件名.xlsx", sheet_name='sheet名')
#将网站和运营商设置为索引
info_1 = info_new2.set_index(['target','optname'])
print(info_1)
#筛选出IP字段
ip = info_1['idcip']
#将idcip列以‘,’分开,分成多列
ipdf = ip.str.split(',',expand = True)
#将列转换为行
ip = ipdf.stack()
#将最后一级索引删除
ip = ip.reset_index(drop=True,level=-1)
#再调用一次reset_index,会自动进行笛卡尔乘积
ipdf = ip.reset_index()
#将自动生成的0列进行重命名
ipdf = ipdf.rename(columns={0:'idcip'})
print(ipdf)
#后面将idcsize,idcdelay,idcipnum进行同样的操作。只是这三个字段在后面会求和计算,需要将类型转换为数字型。
#将时延列有文本转为数字型
info_delay= pd.to_numeric(delaydf['idcdelay'],errors='coerce')
#合并,按照网站和运营商和IP合并
info_two=pd.concat([ipdf,info_delay,info_ipnum,info_size],axis=1)
#去除idcdelay列为空的行
info_two = info_two[info_two['idcdelay'].notna()]
#按照'target','idcip','optname'分组,'idcdelay','idcipnum','idcsize'分别求和
info_he=info_two.groupby(['target','idcip','optname'])['idcdelay','idcipnum','idcsize'].sum()
#写入excel
info_he.to_excel("E:\\地址\\文件名.xlsx", sheet_name=sheet名)
大功告成!(第一次发表,希望大家多多包涵!)
最新文章
- [No00008F]PLSQL自动登录,记住用户名密码&;日常使用技巧
- 网络请求之JSON解析
- django 添加动态表格的方法
- 【linux】linux创建用户并授予sudo权限
- IOS开发之自定义系统弹出键盘上方的view(转载)
- iOS中使用FMDB事务批量更新数据库
- Codeforces Round #286 (Div. 1) D. Mr. Kitayuta's Colorful Graph 并查集
- delphi 连接 c++ builder 生成obj文件
- c# propertyGrid下拉选项
- opencv3+版本感觉还是不稳定啊
- Python基础——字符串
- uclibc和glibc的差别
- [转]GitLab-CI与GitLab-Runner
- LeetCode第二题
- JavaEE学习之Spring声明式事务
- 如何计算PCB设计中的阻抗
- numpy 矩阵变换transpose和swapaxes
- InertialNav
- 【转】Zookeeper学习---zookeeper 选举机制介绍
- Jenkins邮件通知
热门文章
- GitHub 开源了多款字体「GitHub 热点速览 v.22.48」
- 18V转5V,15V转5V的LDO和DC芯片方案
- 20W,PD快充协议芯片,带有PPS控制器的USB-PD3.0
- Java的两大、三类代理模式
- 【敏捷研发系列】前端DevOps流水线实践
- BUU_RE学习记录
- [0x11] 131.直方图中最大的矩形【单调栈】
- 学习.NET MAUI Blazor(三)、创建.NET MAUI Blazor应用并使用AntDesignBlazor
- Kali Win-KeX SL
- Note: further occurrences of HTTP request parsing errors will be logged at DEBUG level