加快数据框的多列检查和替换

时间:2019-10-24 06:25:45

标签: python python-3.x pandas

我有两个具有不同数据的数据框,我想通过检查多列值来用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分钟。

有没有更好的方法来处理它?非常感谢!

0 个答案:

没有答案