熊猫逐元素比较并创建选择

在数据框中,我想将一列的元素与一个值进行比较,并对将比较传递到新列中的元素进行排序。

df = pandas.DataFrame([{'A':3,'B':10},
                       {'A':2, 'B':30},
                       {'A':1,'B':20},
                       {'A':2,'B':15},
                       {'A':2,'B':100}])

df['C'] = [x for x in df['B'] if x > 18]

我找不到什么错以及为什么会得到:

ValueError:值的长度与索引的长度不匹配

莎拉妮娅(Saranya Krishnamurthy)

如Darren所述,a中的所有列DataFrame应具有相同的长度。

当您尝试时print [x for x in df['B'] if x > 18],只会得到[30, 20, 100]值。但是您有五个索引/行。那就是你得到Length of values does not match length of index错误的原因

您可以按以下方式更改代码:

df['C'] = [x if x > 18 else None for x in df['B']]
print df

你会得到:

   A    B      C
0  3   10    NaN
1  2   30   30.0
2  1   20   20.0
3  2   15    NaN
4  2  100  100.0

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

TOP 榜单

热门标签

归档