我有一个表,其中包含列photo_x
和combine
以及其他字段。
photo_x
对于每一行都是唯一的。现在,我有一个photo_x
值数组,例如["a.jpg","b.jpg", "c.jpg"]
作为输入,我想在与输出相同的行中获取相应的combine
字段(这是一个数组)。
我可以使用以下代码来完成任务,但是是否有更简洁的方法?
combine_field_values=[]
for name in ["a.jpg","b.jpg", "c.jpg"]:
combine_field_values.append(df_train[df_train['photo_x']==name]['combine'])
答案 0 :(得分:0)
将isin
与Categorical
一起使用
s=df_train.loc[df_train['photo_x'].isin(["a.jpg","b.jpg", "c.jpg"]),['combine','photo_x']]
s.photo_x=pd.Categorical(s.photo_x, ordered=True,categories=["a.jpg","b.jpg", "c.jpg"])
s.sort_values(photo_x).combine.values