python自动化代码数据分离脚本_领导给了一堆无序杂乱的数据,写个Python自动化脚本,升职加薪了...

如果说同事或者老板给你一堆这样的数据,你估计会抓狂,该怎么处理呢?

b7463295d9d7f56e34cc9132ec07f55c.png

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

每一行的数据长度不同。第一行和第三行有4个属性,第二行有5个属性。

不同行的属性值,并不是对应排列。

解题思路剖析

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

c656c88a96a75caaad9a2dabfef74aad.png

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

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

f5a80b27a78680620e73bde47fbf12ac.png

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

完整代码

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

import pandas as pd

x = {"信息":["年龄:12;性别:女;身高:22;爱好:打球",

"年龄:12;说明:历史数据;性别:女;身高:22;爱好:打球",

"生日:2月3日;年龄:12;性别:女;爱好:打球"]

}

df = pd.DataFrame(x)

df

结果如下:

7d273ace8165687f9d0be83ce8f47b98.png

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

结果如下:

45838769da0746f2dc83ada56b563b51.png

3)创建DataFrame

df = pd.DataFrame(tmps)

df

结果如下:

d7f22a03787f7c3e659d3da95c2a7926.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值