这个问题算是群友答疑。如果说同事或者老板给你一堆这样的数据,你估计会抓狂,该怎么处理呢?

很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!
QQ群:101677771

仔细观察上面数据可以发现,该数据有如下2个主要特点:

  • 每一行的数据长度不同。第一行和第三行有4个属性,第二行有5个属性。
  • 不同行的属性值,并不是对应排列。

解题思路剖析

你可能会想,直接用Excel分裂。其实并不可行,因为不同行的属性值,并不是对应排列。Excel分列导致的结果就是:不同的属性,存在于相同的行。

放弃Excel那条路之后,我就只能寻求Python的帮助了。我们要根据数据的特点,选择合适的数据存储方法。最终问题就转化为:构造数据源,然后创建DataFrame即可。

然后根据我们这个数据的特点,我选择构造字典组成的列表这样一个数据,并利用它来创建DataFrame。

观察我提供的这个案例和待解决的问题,简直异曲同工。我们同样可以将上述数据的每一行,都变成一个个键值对组成的字典。然后最外层用一个大列表,将所有的字典包含起来。

完整代码

1)首先需要构造练习数据

import pandas as pd 
x = {"信息":["年龄:12;性别:女;身高:22;爱好:打球", 
             "年龄:12;说明:历史数据;性别:女;身高:22;爱好:打球", 
             "生日:2月3日;年龄:12;性别:女;爱好:打球"] 
    } 
df = pd.DataFrame(x) 
df 

结果如下:

2)构造字典组成的列表

tmps_list = [] 
for data in df["信息"].values: 
    tmp_dict = {} 
    for kv in data.split(";"): 
        k, v = kv.split(":") 
        tmp_dict[k] = v 
    tmps_list.append(tmp_dict) 
tmps 

结果如下:

3)创建DataFrame

df = pd.DataFrame(tmps) 
df 

结果如下:

领导给了一堆无序杂乱的数据,我写了个Python自动化脚本的更多相关文章

  1. Selenium2+python自动化21-TXT数据参数化

    前言      在17篇我们讲了excel数据的参数化,有人问了txt数据的参数化该怎么办呢,下面小编为你带你txt数据参数化的讲解 一.以百度搜索为例,自动搜索五次不同的关键字.输入的数据不同从而引 ...

  2. 一种数据与逻辑分离的Python单元测试工具

    一种数据与逻辑分离的Python单元测试工具 几个概念 TestCase TestCase是一个完整的测试单元,最小的测试执行实体,就是我们常说的测试用例. TestSuite 以某种特性将测试用例组 ...

  3. 【python-excel】Selenium+python自动化之读取Excel数据(xlrd)

    Selenium2+python自动化之读取Excel数据(xlrd) 转载地址:http://www.cnblogs.com/lingzeng86/p/6793398.html ·········· ...

  4. 数据科学实战手册(R+Python)书中引用资料网址

    本文会持续将<数据科学实战手册(R+Python)>一书中的附带参考资料网址手打出来, 方便访问. 由于书中的参考资料网址太多, 这个文档将可能花费一段时间才能完成. 第一章 P7  Rs ...

  5. Selenium2+python自动化21-TXT数据参数化【转载】

    前言      在17篇我们讲了excel数据的参数化,有人问了txt数据的参数化该怎么办呢,下面小编为你带你txt数据参数化的讲解 一.以百度搜索为例,自动搜索五次不同的关键字.输入的数据不同从而引 ...

  6. Selenium2+python自动化20-Excel数据参数化【转载】

    前言 问: Python 获取到Excel一列值后怎么用selenium录制的脚本中参数化,比如对登录用户名和密码如何做参数化? 答:可以使用xlrd读取Excel的内容进行参数化.当然为了便于各位小 ...

  7. Jmeter 接口自动化-脚本数据分离实例

    一. 背景:  为了让大家更加的了解Jmeter,并且使用起来游刃有余.这篇我们主要讲一下,如何优雅的使用Jmeter一步步的实现接口自动化,完成脚本与数据分离,把可能对Jmeter脚本的维护转移到c ...

  8. c# .net获取文件夹下的所有文件(多层递归),并获取区间数据(Jsion,xml等数据)写出到处理文件,学习分享~

    static void Main(string[] args)        { string path = string.Format(@"C:\Users\Administrator\D ...

  9. 数据泵如何生成导出文件的DDL脚本

    在使用exp/imp时,生成对应dumpfile文件的DDL脚本非常容易,在使用命令imp时,添加参数show, show=y表示展示imp导入的时候,输出相关DDL语句(不包括insert语句),而 ...

随机推荐

  1. CF R 630 div2 1332 F Independent Set

    LINK:Independent Set 题目定义了 独立集和边诱导子图.然而和题目没有多少关系. 给出一棵树 求\(\sum_{E'\neq \varnothing,E'\subset E}w(G( ...

  2. CI/CD:Jenkins的流水线demo入门

    在敏捷开发或者devops中,Jenkins常常作为CI/CD的主选平台,而流水线(Pipeline)是CI/CD的一个常见的体现形式,通过流水线,我们可以配置一个从编译打包,部署,自动化测试,到产品 ...

  3. __STL_VOLATILE

    _Obj* __STL_VOLATILE* __my_free_list = _S_free_list + _S_freelist_index(__n); _Obj* * __my_free_list ...

  4. JS中的数组复制问题

    JS中的数组复制问题 前言 首先提到复制,也就是拷贝问题,就必须要明确浅拷贝和深拷贝. 浅拷贝:B由A复制而来,改变B的内容,A也改变 深拷贝:B由A复制而来,改变B的内容,A的内容不会改变 总的来说 ...

  5. dos下mybatis自动生成代码

    今天来介绍下怎么用mybatis-gennerator插件自动生成mybatis所需要的dao.bean.mapper xml文件,这样我们可以节省一部分精力,把精力放在业务逻辑上. 之前看过很多文章 ...

  6. 经典的IPC问题

    Inter-Process Communication的缩写,含义是进程间通信,是指两个进程间交换数据的过程. 哲学家进餐问题 概述 哲学家进餐/思考 进餐需要两把叉子 每次拿一把叉子 如何预防死锁 ...

  7. ALGEBRA-前言

    “当你读一页不到一个小时的话,可能是你读太快了” 哈哈 可以 慢慢品

  8. C#LeetCode刷题-数学

    数学篇 # 题名 刷题 通过率 难度 2 两数相加   29.0% 中等 7 反转整数 C#LeetCode刷题之#7-反转整数(Reverse Integer) 28.6% 简单 8 字符串转整数 ...

  9. jquery—实现能滚动的选项卡效果

    选项卡在网页中很常见,可以说是必备的一个元素了,网上其实也有很多案例讲解选项卡的做法,写这篇文章,就是记录下自己的写一个的实例效果图: html: css样式: 主要是滚动条的的样式设置width:1 ...

  10. windows下mongoDB的下载和安装

    1.进入mongoDB官网,官网地址:https://www.mongodb.com 2.  点击Try free按钮,进入下载页面 3.点击download进行下载:下载完成如下图: 4.点击下载的 ...