繁体   English   中英

Pandas DF 根据特定列组合行

[英]Pandas DF combine rows based on specific column

我有以下DF:

 Time Key Val 0 1 22 0 2 33 0 11 4 0 12 5 1 1 12 1 2 13 1 11 14 1 12 15

我想生成以下内容:

 Time Key1 Val1 Key2 Val2 0 1 22 2 33 0 11 4 12 5 1 1 12 2 13 1 11 14 12 15

基于我有一个逻辑说我有两组键:

{[1,2],[11,12]}

我应该从哪里开始以便根据特定逻辑合并数据框行?

假设您的键是列表列表(请参见下面的d ),我们可以将pd.concatSeries.isin一起使用:

d = [[1,2],[11,12]]
n = len(d[0])
keys = [[x[i] for x in d] for i in range(n)]

df = pd.concat([
    df[df['Key'].isin(l)].set_index('Time').add_suffix(i+1) 
     for i, l in enumerate(keys)
], axis=1
).reset_index()

   Time  Key1  Val1  Key2  Val2
0     0     1    22     2    33
1     0    11     4    12     5
2     1     1    12     2    13
3     1    11    14    12    15

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM