pandas 错误 ValueError: ‘Lengths must match to compare‘

pandas 错误 ValueError: ‘Lengths must match to compare‘,第1张

在dataframe中找到某个值,并最终输出其对应的其他某个列的值
https://chehongshu.blog.csdn.net/article/details/107623238

错误

find_series = df[df['obj']==i]['solution']
print(find_series.values[0])#输出obj列等于i的solution列的第0行的值

提示错误
ValueError: (‘Lengths must match to compare’, (907,), (2,))

原因
https://cumsum.wordpress.com/2021/07/24/pandas-valueerror-lengths-must-match-to-compare/
我的i是个有两个元素的list, 不能直接对比
由于 pandas 尝试对比较进行矢量化,即逐个元素进行比较,因此它要求双方具有相同的大小。 而且它不会知道您要将右侧列表作为一个整体与左侧列中的每个元素进行比较。

改正

se = df['obj'].map(tuple) == tuple(i)
a = se[se == True].index.values
print(df.at[a[0], 'solution'])##输出obj列等于i的solution列的第0行的值

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/787336.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-05
下一篇 2022-05-05

发表评论

登录后才能评论

评论列表(0条)

保存