pandas 计算数据框的列中存在于另一个数据框的列中的值的数量

wqnecbli  于 2022-12-10  发布在  其他
关注(0)|答案(2)|浏览(160)

我有两个 Dataframe :
df1:
| 索引|日期|
| - -|- -|
| 第0页|2016年3月21日20时10分|
| 一个|2016年3月22日21时09分|
| 2个|2016年5月3日17时05分|
DF2:
| 索引|日期|
| - -|- -|
| 第0页|2016年3月21日20时10分|
| 一个|2016年3月21日21时00分|
| 2个|2016年3月22日21时09分|
| 三个|2016年5月3日17时05分|
| 四个|2017年6月1日16时10分|
可能有一个非常简单的方法来实现这一点,但是如何计算df 1 Date列中同时存在于df 2 Date列中的值的数量呢?(这些不是唯一值计数)

wydwbb8l

wydwbb8l1#

最简单的方法来解决你的问题将使用set交集(从集合中找到公共元素)。例如:

df1=pd.DataFrame({"date":['2016-03-21 20:10:00','2016-03-22 21:09:00','2016-05-03 17:05:00']})

df2=pd.DataFrame({"date":['2016-03-21 20:10:00','2016-03-21 21:00:00',
                '2016-03-22 21:09:00','2016-05-03 17:05:00','2017-06-01 16:10:00']})

print(len(set(df1.date) & set(df2.date))) # 3

这只会将指定列转换为python-set,并查找它们之间的公共项。
如果您想使用Pandas,那么您可以使用pandas.merge()来获取基于列的公共行。

df3 = pd.merge(df1, df2)
print(len(df3)) # 3

并使用len函数对公共行进行计数。

mfuanj7w

mfuanj7w2#

您可以使用isin function

len(df1[df1.Date.isin(df2.Date)])

输出:

3

相关问题