首页 > 解决方案 > 如何从凌乱的字符串中提取数据框?

问题描述

我有一个在发布前已经修改过的数据集。但是,它的附件代码没有被修改,现在面临这个错误。代码需要一个解释 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  

标签: pythonpandasdataframe

解决方案


我确信有更好的方法,但我使用这个技巧来让数据帧从格式不正确的 SO 问题中使用。

打印字符串(让我们print处理诸如返回字符之类的事情'\n'),然后全选并复制它。然后使用:

df = pd.read_clipboard("\s\s+")

有时我必须手动调整几个列名之间的间距才能使其正常工作,但它的效果不合理。


推荐阅读