Pandas_Python处理dhl文件,dict转DataFrame

微信群内搜集到的真实数据清洗工作。需要将dhl格式的文件转为csv文件。
数据皆为虚构

源数据

在这里插入图片描述
前两个方括号内分别是日期和字符串,逗号之后是一个完整的字典型字符串。

目标格式

在这里插入图片描述
将前两个方括号内的数据提出,并且字典里的数据也一并提出,合并为一个一维表。

代码

# 读取dhl文件
df = pd.read_table("./1.dhl", header=None)

# 使用正则拆分并还原成DataFrame
df_new = df[0].str.split("\[(.*?)\]\[(.*?)\],(.*?)", expand=True)

# 删除多余列
df_new.drop([0, 3], axis=1, inplace=True)

# 设置列名
df_new.columns = ['date', 'type', 'dict']

# 将字典字符串列修改为字典类型
df_new['dict'] = df_new['dict'].apply(lambda x: eval(x))

# 修改数据类型
df_new['date'] = pd.to_datetime(df_new['date'])

# 提取出字典列,并删除原df中的字典,节约内存
dic = df_new['dict']
df_new.drop('dict', axis=1, inplace=True)

# 横向拼接
pd.concat([df_new, pd.DataFrame(list(dic))], axis=1)

个人意见,仅供参考,欢迎留言。

展开阅读全文

Windows版YOLOv4目标检测实战:训练自己的数据集

04-26
©️2020 CSDN 皮肤主题: 大白 设计师: CSDN官方博客 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值