我有两个具有不同数据的数据框,我想通过检查多列值来用df2填充df1:
下面是一些示例(抱歉,不提供真实代码):
df3 = pd.Dataframe([[data] x 7000...], columns=["COUNTY", "TOWN", "VILLAGE", , "DATA1", "DATA2", "population"])
我想用相同的“ COUNTY”,“ TOWN”,“ VILLAGE”检查两个df,然后我可以创建df3,例如:
df1["population"] = np.full(df1.shape[0], np.nan)
df3 = pd.Dataframe(columns=df1.columns)
for i in range(df1.shape[0]):
base_row = df1.iloc[i].copy
compare_COUNTY = base_row["COUNTY"]
compare_TOWN = base_row["TOWN"]
compare_VILLAGE = base_row["VILLAGE"]
tar_row = df2[ df2["COUNTY"] == compare_COUNTY &
df2["TOWN"] == compare_TOWN &
df2["VILLAGE"] == compare_VILLAGE ]
df3 = df3.append(tar_row)
我已经做了一些研究和编码,例如:
Hashtable<Integer, Hashtable<String, Integer>> h = new Hashtable<>();
h.put(1, new Hashtable<String, Integer>() {{put("firstKey", 3);}});
Integer intValue = h.getOrDefault(1, new Hashtable<>()).getOrDefault("firstKey", null);
System.out.println(intValue);
这完全是我所需要的,但是它又丑又慢……花了我大约5分钟来获取一个数据集,而我只有50分钟。
有没有更好的方法来处理它?非常感谢!