熊猫突然出现代码错误

时间:2018-02-27 21:15:06

标签: python pandas

我有这个df:

A      B      C      D
a      d      a      z
b      c      z      c

我的目标是提取列名称,其中df ==' z'所以我用过:

df['ColumnNames'] = df.where(df=='z' ).stack().reset_index().groupby('level_0')['level_1'].apply('+ '.join)

以前工作得很好;但今天我收到一个错误说:" TypeError:无法将[' z']与块值进行比较"

有谁知道为什么会这样?非常感谢!

1 个答案:

答案 0 :(得分:2)

你的代码在我身边工作正常,检查你的df中是否包含空格,我们也用

缩短它
df[df=='z'].stack()
Out[216]: 
0  D    z
1  C    z
dtype: object

df[df=='z'].stack().index.get_level_values(1)
Out[218]: Index(['D', 'C'], dtype='object')

来自PiR的上述评论

我的猜测是你在比较int和str时有一个bandas的版本。尝试df.astype(object)=='z'