这个问题是Pandas conditional creation of a series/dataframe column
的扩展给出以下数据框:
df = pd.DataFrame(np.random.randint(0,20,size=(10, 2)), columns=list('AB'))
df["note"]="old note"
我需要更新A并在A> B时注意列。这是我尝试过的:
df.loc[df.A>df.B, "note"]="A was: "+str(df.A)
df.loc[df.A>df.B, "A"]=df.B
和
df["note"]=np.where(df.A>df.B, "A was: "+str(df["A"]), df["note"])
df.loc[df.A>5, "A"]=df.B
note列不是干净的,它将整个A列连接到一个单元格中,而我只想保留同一行的值。你能帮忙吗?
答案 0 :(得分:2)
这是将列强制转换为字符串的问题,请使用Series.astype
:
df.loc[df.A>df.B, "note"]="A was: "+df.A.astype(str)