data1={'Policy Number':['FSH1235456','FSH7643643','CHH123124','CHH123145252','CHH124124'],'State':['FL','TX','GA','TX','TX'],'TERR':[1,2,3,4,5]}
data2={'TERR':[1,2,3,4,5],'CHH':[0,.15,.65,.35,.20],'FSH':[0,.15,.25,.35,.20]}
output={'Policy Number':['FSH1235456','FSH7643643','CHH123124','CHH123145252','CHH124124'],'State':['FL','TX','GA','TX','TX'],'TERR':[1,2,3,4,5],'Test':[0,.15,0,0,0]}
df1=pd.DataFrame(data1)
df2=pd.DataFrame(data2)
df3=pd.DataFrame(output)
以上测试数据。你知道吗
我试图在df1中创建一个新列,称为df1['Test'],它包含基于以下条件的df2['FSH']值:
查看df3以获得正确的输出。你知道吗
我试着做的是:
if df1.State.any()=="TX":
if df1["Policy Number"].str.contains("FSH").any():
for i in df["TERR"]:
df1['% TERR']=df2.loc[[i],["FSH"]]
然而,我的输出是充满南,以及一个独特的正确答案。你知道吗
我试图检查以确保正确的I值通过
print(df2.loc[[i],["FSH"]]
而且打印正确。你知道吗
有什么想法吗?你知道吗
你只是想把数据从
df2
放到df1
里吗?如果是这样,您可以使用melt
重塑df2
,然后执行merge
。你知道吗如果您只想将其应用于状态为“TX”的行,则可以在合并后将其他值设置为null:
我不知道这是最好还是最快的解决方案,但有一个选择是合并你的2个数据帧,然后根据你的条件过滤,然后更新:
你可以使用numpy,通过传递条件
相关问题 更多 >
编程相关推荐