gpt4 book ai didi

python - 两个 Pandas 数据帧之间每个单元格中不同的位计数

转载 作者:太空宇宙 更新时间:2023-11-03 14:56:15 26 4
gpt4 key购买 nike

我有一个二进制字符串数据框,如下所示:

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))

但是,我无法将 apply() 与 pandas 数据框一起使用,因为 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

关于python - 两个 Pandas 数据帧之间每个单元格中不同的位计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42342345/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com