Python 如何合并一列中包含多个元素的两个数据帧
我尝试在由元素组成的数据帧和具有唯一数据帧的其他数据帧的基础上合并一个新的数据帧 dataframe1:Python 如何合并一列中包含多个元素的两个数据帧,python,pandas,dataframe,merge,Python,Pandas,Dataframe,Merge,我尝试在由元素组成的数据帧和具有唯一数据帧的其他数据帧的基础上合并一个新的数据帧 dataframe1: col1 0 A1 1 A1,A5 2 A1 3 A2,A9,A3 4 A3 dataframe2: col
col1
0 A1
1 A1,A5
2 A1
3 A2,A9,A3
4 A3
dataframe2:
column1 column2
0 A1 DE
1 A2 DZ
2 A3 DA
3 A4 AC
4 A5 RC
5 A6 UC
6 A7 TC
7 A8 VC
8 A9 WC
9 A10 XC
最终数据帧:
col1 column1 column2
0 A1 A1 DE
1 A1,A5 A1 DE
2 A1,A5 A5 RC
2 A1 A1 DE
3 A2,A9,A3 A2 DZ
4 A2,A9,A3 A9 WC
5 A2,A9,A3 A3 DA
6 A3 A3 DA
通过拆分值和左连接使用:
df = (df1.assign(column1 = df1['col1'].str.split(','))
.explode('column1')
.merge(df2, on='column1',how='left'))
print (df)
col1 column1 column2
0 A1 A1 DE
1 A1,A5 A1 DE
2 A1,A5 A5 RC
3 A1 A1 DE
4 A2,A9,A3 A2 DZ
5 A2,A9,A3 A9 WC
6 A2,A9,A3 A3 DA
7 A3 A3 DA
通过拆分值和左连接使用:
df = (df1.assign(column1 = df1['col1'].str.split(','))
.explode('column1')
.merge(df2, on='column1',how='left'))
print (df)
col1 column1 column2
0 A1 A1 DE
1 A1,A5 A1 DE
2 A1,A5 A5 RC
3 A1 A1 DE
4 A2,A9,A3 A2 DZ
5 A2,A9,A3 A9 WC
6 A2,A9,A3 A3 DA
7 A3 A3 DA
谢谢你的回答@jezrael!!我必须使用python 2.7,所以你知道pandas 0.24.2上是否有类似的函数explode吗?@JulieHardy-是否可以在
python 2.7
中升级pandas?我检查了一下,python 2.7的pandas的最后一个版本似乎是0.24.2@jezrael@JulieHardy-尝试检查一些不爆炸的解决方案。谢谢你的帮助,我将尝试其中一种这个方法@jezrael!谢谢你的回答@jezrael!!我必须使用python 2.7,所以你知道pandas 0.24.2上是否有类似的函数explode吗?@JulieHardy-是否可以在python 2.7
中升级pandas?我检查了一下,python 2.7的pandas的最后一个版本似乎是0.24.2@jezrael@JulieHardy-尝试检查一些不爆炸的解决方案。谢谢你的帮助,我将尝试其中一种这个方法@jezrael!