【发布时间】:2019-02-05 07:39:31
【问题描述】:
我有两个数据框,如下所示:
df1:
Cell NodeName conc Delta
S1C1 B4MU1241 B4MU1241;S1C1 0.2
S2C1 B4MU1241 B4MU1241;S2C1 0.2
S3C1 B4MU1241 B4MU1241;S3C1 1
S4C1 B4MU1241 B4MU1241;S4C1 11.1
S1C1 B4MU1702 B4MU1702;S1C1 0.2
S1C2 B4MU1702 B4MU1702;S1C2 0.2
S2C1 B4MU1702 B4MU1702;S2C1 0.1
S2C2 B4MU1702 B4MU1702;S2C2 0
S3C1 B4MU1702 B4MU1702;S3C1 0.1
S3C2 B4MU1702 B4MU1702;S3C2 0.2
S4C1 B4MU1702 B4MU1702;S4C1 0.1
S4C2 B4MU1702 B4MU1702;S4C2 0.1
df2:
Cell NodeName conc Temparature-DUW Delta
S1C1; B4MU1241 B4MU1241;S1C1 60C
S2C1; B4MU1241 B4MU1241;S2C1 60C
S3C1; B4MU1241 B4MU1241;S3C1 60C
S4C1; B4MU1241 B4MU1241;S4C1 60C
S1C1;S1C2; B4MU1702 B4MU1702;S1C1;S1C2 56C
S2C1;S2C2; B4MU1702 B4MU1702;S2C1;S2C2 56C
S3C1;S3C2; B4MU1702 B4MU1702;S3C1;S3C2 56C
S4C1;S4C2; B4MU1702 B4MU1702;S4C1;S4C2 56C
现在我想在 df2 中填写“Delta”列,这样输出应该是:
Cell NodeName conc Temparature-DUW Delta
S1C1; B4MU1241 B4MU1241;S1C1 60C 0.2
S2C1; B4MU1241 B4MU1241;S2C1 60C 0.2
S3C1; B4MU1241 B4MU1241;S3C1 60C 1
S4C1; B4MU1241 B4MU1241;S4C1 60C 11.1
S1C1;S1C2; B4MU1702 B4MU1702;S1C1;S1C2 56C 0.2, 0.2
S2C1;S2C2; B4MU1702 B4MU1702;S2C1;S2C2 56C 0.1,0
S3C1;S3C2; B4MU1702 B4MU1702;S3C1;S3C2 56C 0.1,0.2
S4C1;S4C2; B4MU1702 B4MU1702;S4C1;S4C2 56C 0.1,0.1
我尝试过这样的事情:
df1.loc[df1.apply(lambda row: row.conc in [df2.conc.values], axis=1),
df1['Delta']] = df1['Delta']+df2['Delta']
它给了我错误
ValueError: ('一个多元素数组的真值不明确。使用 a.any() 或 a.all()', '发生在索引 0')
【问题讨论】:
-
请将代码格式化为可读
-
是的,我已经编辑了@SpghttCd
-
抱歉,但没有人有时间或愿意重新创建您的要求为什么或更好:由于什么逻辑应该从您的列表中插入列
Delta中的那些值.你可能很清楚 - 所以请:写下来。