我有两个数据帧。 DF1型:
Page LineNum Value
1 1 0.5
1 2 0.6
1 3 0.7
2 1 0.9
2 2 0.4
DF2:初始数据帧是前三列,我必须生成第四列New\u Value。
Page LineNum Word New_Value
1 1 g1 0.5
1 1 g2 0.5
1 1 g3 0.5
1 1 g4 0.5
1 2 g5 0.6
1 2 g6 0.6
1 3 g7 0.7
1 3 g8 0.7
...
我必须生成DF2的第四列,它实际上是从DF1的惟一“Page”和“LineNum”值映射而来的。在DF2中,这些值只是根据DF1中关于“Page”和“LineNum”的唯一值重复。你知道吗
我目前正在通过for循环执行此操作:
for index, row in DF1.iterrows():
DF2.ix[((DF2['Page'] == row['Page']) & (DF2['LineNum'] == row['LineNum'])),['New_Value']] = row['Value']
这工作得非常好,但是两个数据帧都非常大。所以我需要一些优化的函数,也许使用groupby和lambda,但不能设计出精确的函数。你知道吗
请建议一个没有For循环的优化版本。 请评论,如果有什么我需要解释这件事。 我在用Python和熊猫。你知道吗
我想需要^{} 和左连接:
相关问题 更多 >
编程相关推荐