此问题在此处已有答案:
(13个答案)
5天前关闭。
我尝试在PythonPandas中添加一个新列,该列根据DataFrame中其他两列的条件具有3个不同的值。
我的当前代码如下df[df[column1] > df[column2], "New Column] = "A"
df[df[column1] < df[column2], "New Column] = "B"
df[df[column1] = df[column2], "New Column] = "C"
这会产生错误
TypeError: unhashable type: 'Series'
列1和列2都填充有整数。
我知道序列是不可散列的,但是元组是可以从TypeError : Unhashable type散列的。
我需要将dataframe的column1和column2转换为元组吗?
我试过以下方法
df['New Column'] = df['column1'].apply(lambda df[“column1”]:'A' if(df[“column1”]〉df[“column2”])else 'B')
并得到无效的语法错误。
1条答案
按热度按时间roejwanj1#
使用np.where.
如果你想要更多的条件,你可以做一个嵌套的where循环。它的工作原理类似于excel处理嵌套的if循环。
如果1大于2,返回a,或者进入下一个条件,看看a是否小于b,如果是真的,返回b,否则,如果你失败,得到c,这意味着它是相等的。