【发布时间】:2019-01-24 19:57:35
【问题描述】:
我需要将多行合并为一行,原始数据框如下所示:
IndividualID DayID TripID JourSequence TripPurpose
200100000001 1 1 1 3
200100000001 1 2 2 31
200100000001 1 3 3 23
200100000001 1 4 4 5
200100000009 1 55 1 3
200100000009 1 56 2 12
200100000009 1 57 3 4
200100000009 1 58 4 6
200100000009 1 59 5 19
200100000009 1 60 6 2
我试图建立某种“旅行链”,所以基本上一个人在一天内的所有旅行顺序和旅行目的都应该在同一行...
理想情况下,我试图将表格转换为如下形式:
IndividualID DayID Seq1 TripPurp1 Seq2 TripPur2 Seq3 TripPurp3 Seq4 TripPur4
200100000001 1 1 3 2 31 3 23 4 5
200100000009 1 1 3 2 12 3 4 4 6
如果这不可行,那么以下模式也可以:
IndividualID DayID TripPurposes
200100000001 1 3, 31, 23, 5
200100000009 1 3, 12, 4, 6
有没有可能的解决方案?我在考虑 for loop/while 语句,但也许这不是一个好主意。 提前致谢!
【问题讨论】:
-
不同 ID 的行数不同。你想如何处理缺失/额外的列? @McRist 不是骗子。
-
我会检查个人的最大序列数...希望不超过 10 个序列...对于那些少于 10 个序列的人,是否可以将其留空?跨度>
-
没有“空白”之类的东西。它必须是 NaN、空字符串或其他。
-
对不起,我没有说清楚。 'NaN' 会很好。