python - 如何从凌乱的字符串中提取数据框?
问题描述
我有一个在发布前已经修改过的数据集。但是,它的附件代码没有被修改,现在面临这个错误。代码需要一个解释 255 个家庭特征的数据框,尽管该项目只是一个没有确切分隔符的杂乱字符串来转换它!
我显示了错误、新数据集中项目的类型以及这张图片中字符串的内容。(突出显示每组列之前都有“\n\n” !)
另外,这是我想到提取数据框的方法,但没有奏效:
string=mdi.metadata.homes['home']
home2=string.split("\n\n")[0]
from io import StringIO
StringData = StringIO(home2)
df = pd.read_csv(StringData, sep ="\t")
这只是字符串首字母中仅前 4 列的前 4 行:
homeid install_type location residents starttime \\\n0 47 standard Edinburgh 2 10/08/2016 00:00 \n1 59 standard Edinburgh 2 06/10/2016 00:00 \n2 61 enhanced Edinburgh 2 06/10/2016 00:00 \n3 62 enhanced Edinburgh 2 26/08/2016 00:00 \n4 64 standard Edinburgh 4 20/10/2016 00:00
解决方案
我确信有更好的方法,但我使用这个技巧来让数据帧从格式不正确的 SO 问题中使用。
打印字符串(让我们print
处理诸如返回字符之类的事情'\n'
),然后全选并复制它。然后使用:
df = pd.read_clipboard("\s\s+")
有时我必须手动调整几个列名之间的间距才能使其正常工作,但它的效果不合理。
推荐阅读
- azure-active-directory - 如何在 Azure AD 上将登录方法更改为 HTTP POST 绑定
- python - 如何使用VScode运行从官方网站下载的python
- shell - 在 shell 脚本中过滤数据
- c# - SSL 握手在 C# 中失败,但在邮递员中有效
- javascript - 使用javascript对持续时间和距离进行排序
- android - 如何将图像转换为字节数组
- unity3d - Unity - 位置工具包 - onLocationAvailability 方法每次都返回 false
- javascript - 单击一次后如何删除onclick功能
- python - 将两个列表压缩到字典中时,是否可以为一个键指定多个值?
- php - 如何在 Laravel 8 中调用列数据库中的特定数据