[英]How to check if value exists in another dataframe in pandas?
我下面有一个数据框,其中包含法语到英语之间的映射
df1
french english
ksjks an
sjk def
ssad sdsd
另一个dataframe列为法语,因此需要使用df1将其转换为英语
df2
ksjks sjk ssad
2 4 6
我们该如何实现?
new_cols = []
for col in df2.columns:
if col in df1['french']:
how to get corresponding english value
PS:刚刚将随机数据放入样本中
选项1
将map
与set_index
一起set_index
df2.columns = df2.columns.map(df1.set_index('french').english)
print(df2)
选项2
将rename
与set_index
一起set_index
:
df2.rename(columns=df1.set_index('french').english.to_dict())
两者都会产生:
an def sdsd
0 2 4 6
列的顺序无关紧要:
df1 = pd.DataFrame({'french': ['un', 'deux', 'trois'], 'english': ['one', 'two', 'three']})
df2 = pd.DataFrame([[1,2,3]], columns=['trois', 'deux', 'un'])
df2.rename(columns=df1.set_index('french').english.to_dict())
three two one
0 1 2 3
df2.columns.map(df1.set_index('french').english)
# Index(['three', 'two', 'one'], dtype='object')
df_lookup= pd.DataFrame({"French":["ksjks","sjk","ssad"],"english":
["an","def","sdsd"]})
df_actual=pd.DataFrame({"ksjks":[2],"sjk":[4],"ssad":[6]})
df_actual.columns=[ df_lookup.loc[df_lookup.loc[df_lookup["French"]==
col].index[0],"english"] for col in df_actual.columns]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.