-3

我有 2 个数据框,例如

set1 = ['a','b','c','d','e','f','g','h','i','j']
set2 = ['a','b','b','c','c','f','h','j','k']

df1 = pd.DataFrame(set1, columns=['name'])
df2 = pd.DataFrame(set2, columns=['name'])

我想在没有 forloop 的情况下比较这两个 Dataframes 并获得类似的输出

df3 = ['a=1','b=2','c=2','f=1','h=1','j=1']

我可以使用哪种方式获取此输出任何示例.?? 在这里,我只想要显示的df2项目df1

只打印那些只喜欢的项目df3 ,我还需要得到计数(在熊猫上不可以没问题我只需要一个这样的列表df3也很好我使用了合并函数,但它显示了内部,外部,左连接,右连接,这些方法,所以不知道哪种方法更好

4

3 回答 3

2

pandas.DataFrame.merge与 一起使用value_counts

df1.merge(df2, on="name")["name"].value_counts()

输出:

b    2
c    2
j    1
a    1
h    1
f    1
Name: name, dtype: int64
于 2020-07-06T06:36:56.460 回答
1

希望这可以帮助!

import pandas as pd
df1 = pd.DataFrame({'df1_col':['a','b','c','d','e','f','g','h','i','j']})
df2 = pd.DataFrame({'df2_col':['a','b','b','c','c','f','h','j','k']})

df2[df2['df2_col'].isin(df1['df1_col'])]['df2_col'].value_counts()
于 2020-07-06T06:40:41.483 回答
0
import groupby from itertools
df1,df2 = "".join(df1),"".join(df2)
for i,j in zip(groupby(df1),groupby(df2)):
print(ilen(list(i)))
于 2020-07-06T06:40:06.850 回答