此问题是Pandas conditional creation of a series/dataframe column的扩展。 如果我们有这个数据帧:
Col1 Col2
1 A Z
2 B Z
3 B X
4 C Y
5 C W
我们想做相同的事情:
if Col2 in ('Z','X') then Col3 = 'J'
else if Col2 = 'Y' then Col3 = 'K'
else Col3 = {value of Col1}
我怎么能这样做?
答案 0 :(得分:3)
答案 1 :(得分:0)
尝试使用np.where:outcome = np.where(condition, true, false)
df["Col3"] = np.where(df['Col2'].isin(['Z','X']), "J", np.where(df['Col2'].isin(['Y']), 'K', df['Col1']))
Col1 Col2 Col3
1 A Z J
2 B Z J
3 B X J
4 C Y K
5 C W C
答案 2 :(得分:0)
当您有多个if条件时,一种简单(但可能效率低下)的方法可能会很有用。就像您尝试根据四分位数将值放入(例如)四个存储桶中一样。
df保存您的数据,col1具有值,col2应具有存储桶的值(1,2,3,4) 夸脱的边界为25%,50%和75%。 试试这个
您可以通过A = df.describe()找到四分位数,然后打印(A [col1])