如何在2个数据帧之间按0.1比较?
df1
L_ID L_Values
1 20-25
2 30-35
3 25
4 45
5 30-45
df2 从df1中的L_ID代表df2中的1,2,3,4,5列
Name 1 2 3 4 5
John 25 25 20 30 45
Zara 20 NaN NaN 25 30
Kim NaN NaN NaN 45 50
我想比较df2中的值,它是否在df1中? 是= 0,否= 1
期待df3中的输出
Name 1 2 3 4 5
John 0 1 1 1 0
Zara 0 1 1 1 0
Kim 1 1 1 0 1
答案 0 :(得分:0)
以下应该可以工作
只要照顾南的状况
df3.col.iloc[i]==df3.col.iloc[i]
如果Nan是sting格式,只需将这段代码替换为
if df3.col.iloc[i]!='Nan'
代码是:
d={}
for i in range len(df1):
d[df1.L_ID.iloc[i]]=[]
temp=df1.L_Values.iloc[i].split('-')
if len(temp)==2:
d[df1.L_ID.iloc[i]]=temp
else:
d[df1.L_ID.iloc[i]]=[temp[0], temp[0]]
df3=df2.copy()
for i in range(len(df3)):
for col in df3.columns:
if df3.col.iloc[i]==df3.col.iloc[i] and d[col][0] <= df3.col.iloc[i] <= d[col][1]:
df3.col.iloc[i]=0
else:
df3.col.iloc[i]=1
print(df3)