如何解决在Python DataFrame中将A列中的每个单元格与B列连接
需要帮助将一列的每一行与数据帧的另一列连接起来
输出
解决方法
在列表理解中使用itertools.product
:
from itertools import product
L = [''.join(x) for x in product(df['Col1'],df['Col2'])]
#alternative
L = [a + b for a,b in product(df['Col1'],df['Col2'])]
df = pd.DataFrame({'Col3':L})
print (df)
Col3
0 AE
1 AF
2 AG
3 BE
4 BF
5 BG
6 CE
7 CF
8 CG
或使用辅助列a
进行交叉联接解决方案:
df1 = df.assign(a=1)
df1 = df1.merge(df1,on='a')
df = (df1['Col1_x'] + df1['Col2_y']).to_frame('Col3')
,
备注:如果您复制用于创建输入的代码而不是诸如以下图片之类的图像,则会更容易获得帮助:
import pandas as pd
df=pd.DataFrame([['A','B','C','D'],['E','F','G','H']],columns=['col1','col2'])
解决方案:最省力的是itertools库
from itertools import product
lst1 = ['A','D']
lst2 = ['E','H']
reslst = list(product(lst1,lst2))
或作为数据框系列:
reslst = list(product(df['col1'].values,df['col2'].values))
print(reslst)
注意:您知道结果是一个n**2
长的列表,因此无法分配给原始数据帧。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。