繁体   English   中英

如何检查值是否存在于另一个熊猫数据框中?

[英]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
mapset_index一起set_index

df2.columns = df2.columns.map(df1.set_index('french').english)
print(df2)

选项2
renameset_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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM