我有一个如下所示的数据框:
Name Variable Field
A 2.3 412
A 2.9 861
A 3.5 1703
B 3.5 1731
A 4.0 2609
B 4.0 2539
A 4.6 2821
B 4.6 2779
A 5.2 3048
B 5.2 2979
A 5.8 3368
B 5.8 3216
如您所见,“变量”列有重复的值。我想计算 A 和 B 之间每个变量的增量 (%)。然后我想生成的数据帧是:
Name Variable Field Ref field (A) Delta (A - B)
A 2.3 412 412 0.0%
A 2.9 861 861 0.0%
A 3.5 1703 1703 0.0%
B 3.5 1731 1703 -1.6%
A 4.0 2609 2609 0.0%
B 4.0 2539 2609 2.8%
A 4.6 2821 2821 0.0%
B 4.6 2779 2821 1.5%
A 5.2 3048 3048 0.0%
B 5.2 2979 3048 2.3%
A 5.8 3368 3368 0.0%
B 5.8 3216 3368 4.7%
我已经用熊猫尝试了一些东西,比如:
df["Ref field (A)"] = df.apply(lambda row:df[(df["Variable"] == row["Variable"]) & (df["Name"] == "A")]["Field"][0],axis=1)
但这不起作用...:
File "pandas/_libs/index.pyx", line 106, in pandas._libs.index.IndexEngine.get_value
File "pandas/_libs/index.pyx", line 114, in pandas._libs.index.IndexEngine.get_value
File "pandas/_libs/index.pyx", line 162, in pandas._libs.index.IndexEngine.get_loc
File "pandas/_libs/hashtable_class_helper.pxi", line 958, in pandas._libs.hashtable.Int64HashTable.get_item
File "pandas/_libs/hashtable_class_helper.pxi", line 964, in pandas._libs.hashtable.Int64HashTable.get_item
KeyError: (0, u'occurred at index 0')
有什么简单可行的想法吗?谢谢
富国沪深
相关分类