如何比较两个数据框并将计数的唯一值放在第一个数据框的列中?
数据挖掘
Python
熊猫
2022-03-09 01:55:37
1个回答
merge使用pandas中的功能可以实现您想要的。这是代码:
df1 = pd.DataFrame({'FID_1':[1,2,3]})
df2 = pd.DataFrame({'NEAR_FID':[1,1,1,1,2,2,3,3]})
df_freq = df2.NEAR_FID.value_counts().reset_index()
df = pd.merge(df_freq, df1, how='inner', left_on=['index'], right_on=['FID_1'])
df
index NEAR_FID FID_1
0 1 4 1
1 3 2 3
2 2 2 2
您可以删除任何列索引或 FID_1 以获得所需的输出。
有关合并功能的更多信息,请查看官方文档 ,并在此处对其工作外观进行很好的解释。
编辑 1:合并函数只接受数据框而不接受系列。因此,如果您的数据是系列格式,请先将其转换为数据帧。您可以通过以下方式检查数据类型:
print(type(df2))
那应该输出pandas.core.series.Series
使用它将其更改为数据框:
df = df.to_frame().reset_index()
