【发布时间】:2016-09-17 17:09:15
【问题描述】:
我是 Python 和 Pandas 的新手,正在通过 UCI 处理心脏病数据集。 https://archive.ics.uci.edu/ml/machine-learning-databases/heart-disease/hungarian.data
每个人有 76 个属性和 303 个人,所以我想最终将每个人作为一行和 76 列。我无法将其安排到数据框中,因为数据似乎以 9 行的形式呈现。
我尝试使用空格或换行符作为分隔符将数据集导入 pandas 数据帧,但我仍然无法阻止数据在每 8 个值后拆分:
df = pd.read_table('https://archive.ics.uci.edu/ml/machine-learning-databases/heart-disease/hungarian.data', sep=' ')
df 结果是这样的表:
1254 0 40 1 1.1 0.1 0.2
-9.0 2 140.0 0.0 289 -9.0 -9.0 -9.0
0.0 -9 -9.0 0.0 12 16.0 84.0 0.0
0.0 0 0.0 0.0 150 18.0 -9.0 7.0
172.0 86 200.0 110.0 140 86.0 0.0 0.0
0.0 -9 26.0 20.0 -9 -9.0 -9.0 -9.0
如果您有任何关于如何将其拆分并在第 76 个值之后创建新行的建议,我将不胜感激。每第 76 个值是字符串 'name',这表示一个人的数据结束。谢谢!
【问题讨论】:
-
这是可行但很痛苦的数据帧 rubikscubing。由于输入文件不是那么大,我会处理输入字符串并替换 \n 和 name 以获得对齐的行以服务 read_table