[英]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.concat
与Series.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.