这个问题是Pandas有条件创建系列/数据帧列的扩展
给定以下数据帧:
df = pd.DataFrame(np.random.randint(0,20,size=(10, 2)), columns=list('AB'))
df["note"]="old note"
我需要在 A>B 时更新 A 并记下列。这是我尝试过的:
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
注释列不干净,它将整个 A 列连接在一个单元格中,而我只想保留同一行的值。 你能帮忙吗?
这是将列转换为字符串的问题,请使用Series.astype
:
df.loc[df.A>df.B, "note"]="A was: "+df.A.astype(str)