我有两个这样的数据帧:
category time day 1 2 3
a 24 1 15 35 20
a 22 1 40 35 15
category day time total
b 1 19 10
b 1 20 10
b 1 21 10
b 1 22 10
b 1 23 10
b 1 24 10
b 2 1 10
a 1 0 10
a 1 1 10
a 1 2 10
a 1 3 10
a 1 4 10
a 1 5 10
a 1 6 10
a 1 7 10
a 1 8 10
a 1 9 10
a 1 10 10
a 1 11 10
a 1 12 10
a 1 13 10
a 1 14 10
a 1 15 10
a 1 16 10
a 1 17 10
a 1 18 10
a 1 19 10
a 1 20 10
a 1 21 10
a 1 22 10
a 1 23 10
a 1 24 10
a 2 1 10
我想将第一个数据帧中列“2”中的元素添加到第二个数据帧中的相应元素,列“1”中的元素应添加到上面的单元格,列“3”中的元素应添加到下面的单元格
呈现此结果:
category day time total
b 1 19 10
b 1 20 10
b 1 21 10
b 1 22 10
b 1 23 10
b 1 24 10
b 2 1 10
a 1 0 10
a 1 1 10
a 1 2 10
a 1 3 10
a 1 4 10
a 1 5 10
a 1 6 10
a 1 7 10
a 1 8 10
a 1 9 10
a 1 10 10
a 1 11 10
a 1 12 10
a 1 13 10
a 1 14 10
a 1 15 10
a 1 16 10
a 1 17 10
a 1 18 10
a 1 19 10
a 1 20 10
a 1 21 10 + 40
a 1 22 10 + 35
a 1 23 10 + 15 + 15
a 1 24 10 + 35
a 2 1 10 + 20
现在我使用一个循环,但它是慢,我需要更快的东西:
for row in df_1:
date = row[0]
time = row[1]
category = row[2]
total = row[3:]
index = df_2.index[(df_2['date'] == date) & (df_2['time'] == time)].[0] & (df_2['category'] == category)]
df_2['total'].iloc[index - 1 : index + 1 + 1 ] = df_2['total'].iloc[index - 1 : index + 1 + 1] + total
有没有一个很好的方法用熊猫来做这件事?我是否应该将第二个数据帧的索引设置为“day”和“time”以便能够快速检索它们?我有一个非常大的数据集,所以它是重要的,我选择的方法是快速的。你知道吗
让我们看看这是否更快:
输出:
相关问题 更多 >
编程相关推荐