【发布时间】:2018-09-22 17:52:17
【问题描述】:
对相同的对象测量了几个时间序列。不幸的是,x 和 y 坐标都放在了两个逗号分隔的字符串中。更复杂的是,时间序列的数量和 x 坐标因时间序列而异。
例如,我有一个看起来像这样的数据框:
Object Overall_Prop X Y
obj1 4.5 "0, 1, 3, 6, 1, 3, 5, 7, 0, 1, 3, 5, 7" "3, 9, 10, 11, 8, 10, 12, 14, 3.1, 8.5, 9, 12.5, 14.5"
obj2 9.9 "1, 3, 6, 9" "7, 9, 10, 14.2"
我想要的是一个看起来像这样的数据框:
Object Overall_Prop Curve X Y
obj1 4.5 1 0 3
obj1 4.5 1 1 9
obj1 4.5 1 3 10
obj1 4.5 1 6 11
obj1 4.5 2 1 8
obj1 4.5 2 3 10
obj1 4.5 2 5 12
obj1 4.5 2 7 14
obj1 4.5 3 0 3.1
obj1 4.5 3 1 8.5
obj1 4.5 3 3 9
obj1 4.5 3 5 12.5
obj1 4.5 3 7 14.5
obj2 9.9 1 1 7
obj2 9.9 1 3 9
obj2 9.9 1 6 10
obj2 9.9 1 9 14.2
顺便说一句,这个问题与pandas: how do I split a text in a column into multiple rows 不同,因为这里我们有两列,结果字段必须适当配对。
因此增加了复杂性。
【问题讨论】:
-
坦率地说,我不知道如何开始。我想我可以尝试使用 for 循环,但我有一种感觉,如果我能以某种方式创建多索引,我就可以从宽格式变为长格式。但是话又说回来,时间序列的数量是可变的,所以我不知道如何在不使用 for 循环以某种方式处理字符串的情况下做到这一点。
-
这是一个类似的帖子:stackoverflow.com/questions/17116814/…
标签: python string pandas csv dataframe