【发布时间】:2023-03-07 23:47:01
【问题描述】:
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'] 的值:
- 状态为“TX”
- 策略编号包含“FSH” 3.df1["Terr"]的值=df2['TERR']的值
查看 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"]]
但是,我的输出充满了 NAN,以及 1 个唯一正确答案。
我尝试检查以确保通过
将正确的 i 值输入 df2print(df2.loc[[i],["FSH"]]
并且打印正确。
有什么想法吗?
【问题讨论】: