我有两个数据帧,我想将df1与df2匹配,以查看df1中是否有任何值在df2中。另外,计算值匹配的次数。最后,我想将这些统计信息发送到新的数据框。
这是一个细分:
df1:
df1=['abc','cba']
df2:
df2=['abc','cba','abc123', 'abc', 'abc']
我希望新数据框的输出如下所示:
match, count
'abc', 3
'cba', 1
如您所见,我的新数据框显示了与df1匹配的值以及它在df2中匹配的次数。
到目前为止,这是我的python:
import pandas as pd
ls1 = ['abc', 'cba']
ls2 = ['abc', 'cba', 'abc123', 'abc', 'abc','cba']
df1 = pd.DataFrame(ls1, columns=['senders'])
df2 = pd.DataFrame(ls2, columns=['sender2'])
#print(df1)
#print(df2)
a = df1.merge(df2, left_on=['senders'], right_on=['sender2']).value_counts(['senders'])
print(a)
这是我的输出:
senders
abc 3
cba 2
dtype: int64
但是,我希望将新的数据框重命名为分别匹配,计数然后统计。
我知道我的代码并不多,但是我是python和dataframe的新手,所以我完全迷失了,因此任何想法或建议都将有所帮助。
像这样的东西?
import pandas as pd
df1=['abc','cba']
df2=['abc','cba','abc123', 'abc', 'abc']
dataframe = pd.DataFrame()
dataframe['match'] = df2
new_dataframe =
dataframe.loc[dataframe.match.isin(df1)].groupby('match').size().to_frame(name =
'count').reset_index()
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句