【发布时间】:2016-12-23 18:15:24
【问题描述】:
我有一个这样结构的 pandas 数据框,
ID Col1 Col2
1 50 12:23:01
1 34 12:25:11
1 65 12:32:25
1 98 12:45:08
2 23 11:09:10
2 12 11:12:43
2 56 11:13:12
2 34 11:14:26
2 77 11:16:02
3 64 14:01:11
3 34 14:01:13
3 48 14:02:32
我需要的是能够在重复的 ID 值中搜索以在第 1 列中找到条件,例如 Col1==34。基于此,我需要创建一个新列Col3,它采用Col2 中的相应值。我需要的最终结果如下所示。
ID Col1 Col2 Col3
1 50 12:23:01 12:25:11
1 34 12:25:11 12:25:11
1 65 12:32:25 12:25:11
1 98 12:45:08 12:25:11
2 23 11:09:10 11:14:26
2 12 11:12:43 11:14:26
2 56 11:13:12 11:14:26
2 34 11:14:26 11:14:26
2 77 11:16:02 11:14:26
3 64 14:01:11 14:01:13
3 34 14:01:13 14:01:13
3 48 14:02:32 14:01:13
我尝试了以下方法,但它并没有提取独特的 Col2 值,而只是复制了 Col2
df['Col3'] = np.where(df.Col1.isin(df[df.Col2==34].Col1), df['Col2'], 0)
我意识到从 where 条件分配 df['Col2'] else 0 很可能是我的逻辑问题,并且可能有一些简单明了的方法(或者我的时间可能会花在 SQL 上),但是我不确定如何设置。提前致谢。
【问题讨论】:
标签: python pandas numpy variable-assignment