问题描述
引言:有关代码,请看下面的
假设我们有一个由3列和2行组成的pandas数据框。 我想添加一个名为“ Max_LF”的第四列,该列将包含一个数组。通过查看列“ Max_WD”来检索单元格的值。对于第一行是0.35,它将与“ WD”列中的值进行比较,其中在第三位置可以找到0.35。因此,列“ LF”的第三个值应写入列“ Max_LF”。如果在“ WD”中多次出现“ Max_WD”的值,则应将“ LF”的所有对应项写入“ Max_LF”。
尝试失败
到目前为止,我在第一次检索“ WD”中“ Max_WD”中项目的索引时有各种尝试。在潜在地获取索引之后,想法是通过索引获取“ LF”项:
df4['temp_indices'] = [i for i,x in enumerate(df4['WD']) if x == df4['Max_WD']]
但是,发生了ValueError: 引发ValueError('长度必须匹配才能进行比较') ValueError:长度必须匹配才能进行比较
这是示例日期框架的样子
df = pd.DataFrame(data={'LF': [[1,2,3,4],[1,4]],'WD': [[0.28,0.34,0.35,0.18],[0.42,0.45,[0.31,0.21,0.41,0.41]],'Max_WD': [0.35,0.41]})
预期结果应为
df=pd.DataFrame(data={'LF': [[1,0.41],'Max_LF': [[3],[2,3],[3,4]]})