我有两个数据帧,如下所示:
dfa = pd.DataFrame(['AA', 'BB', 'CC'], columns=list('A'))
dfb = pd.DataFrame(['AC', 'BC', 'CC'], columns=list('B'))
我的输出是生成一个新的数据帧,其中dfb中的B列和从B到a的每个元素之间的另一列距离(例如,从AC到AA的汉明距离为1),如下所示:
B disB disB disB
0 AC 1 2 1
1 BC 2 1 1
2 CC 2 2 0
我尝试过的代码如下(其他帖子提供):
dfa = pd.DataFrame(['AA', 'BB', 'CC'], columns=list('A'))
dfb = pd.DataFrame(['AC', 'BC', 'CC'], columns=list('B'))
df_summary = dfb.copy()
for seq1 in dfa.A:
df__ = []
for seq2 in dfb.B:
hd = sum(c1 != c2 for c1, c2 in zip(seq1, seq2))
df__.append(hd)
df_summary['dis_{}'.format(column)] = pd.DataFrame({'dis_' + column: df__}).values
print(df_summary)
结果将给我3个输出:
B dis_B
0 AC 1
1 BC 2
2 CC 2
B dis_B
0 AC 2
1 BC 1
2 CC 2
B dis_B
0 AC 1
1 BC 1
2 CC 0
但我需要把它们结合在一起,比如:
B解散解散解散解散
0 AC 1 2 1
公元前1年2月1日
2 CC 2 0
谢谢你的帮助!