繁体   English   中英

两个pandas数据帧之间的每个单元中的位计数不同

[英]Count of bit different in each cell between two pandas dataframes

我有一个二进制字符串的数据帧如下:

df = pd.DataFrame({'A':['111','101','011'],'B':['01','10','00']})

A      B
111    01
101    10
011    00

和二进制字符串的参考数据帧如下:

ref = pd.DataFrame({'A':['111','111','111'],'B':['00','00','00']})

A      B
111    00
111    00
111    00

我想计算df和ref之间成对的每个单元的位数不同。 预期的输出如下。

A      B
0      1
1      1
1      0

到目前为止,我可以使用以下思路计算两个位串的差异。

count = sum(1 if a != b else 0 for a,b in zip(str1,str2))

但是,我无法使用带有pandas数据帧的apply()来应用这样的想法,因为str1在df中,而str2在ref中。 我可以提出你的建议吗? 先感谢您。

这样的事情应该做:

df = pd.DataFrame({'A':['111','101','001'],'B':['01','10','00']})
ref = pd.DataFrame({'A':['111','111','111'],'B':['00','00','00']})

diff = lambda s1,s2: sum(1 if a != b else 0 for a,b in zip(s1,s2))
df2 = pd.DataFrame()
for column in df.columns:
    df2[column] = list(map(diff,df[column],ref[column]))

输出:

   A  B
0  0  1
1  1  1
2  2  0

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM