作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个如下所示的数据框:
# df
colA colB colC
rqp 129 a
pot 217;345 u
ghay 716 b
rbba 217;345 d
tary 612;811;760 a
kals 716 t
# newdf:
colAA coLBB
(129,a) (a,rqp)
(217,u) (u,pot)
(345,u) (u,pot)
(716,b) (b,ghay)
(217,d) (d,rbba)
(345,d) (d,rbba)
(612,a) (a,tary)
(811,a) (a,tary)
(760,a) (a,tary)
(716,t) (t,kals)
df['AA'] = list(zip(df[colB], df[colC]))
df['AB'] = list(zip(df[colC], df[colA]))
最佳答案
使用, Series.str.split
拆分列的字符串 colB
围绕分隔符 ;
然后使用 DataFrame.explode
变换列的每个元素 colB
到一行,复制索引值。然后使用 DataFrame.agg
将所需的列聚合为 tuple
沿axis=1
:
df['colB'] = df['colB'].str.split(';')
df = df.explode('colB')
df['ColAA'] = df[['colB', 'colC']].agg(tuple, axis=1)
df['ColBB'] = df[['colC', 'colA']].agg(tuple, axis=1)
df = df[['ColAA', 'ColBB']].reset_index(drop=True)
# print(df)
ColAA ColBB
0 (129, a) (a, rqp)
1 (217, u) (u, pot)
2 (345, u) (u, pot)
3 (716, b) (b, ghay)
4 (217, d) (d, rbba)
5 (345, d) (d, rbba)
6 (612, a) (a, tary)
7 (811, a) (a, tary)
8 (760, a) (a, tary)
9 (716, t) (t, kals)
关于python - Pandas 拆分列并创建元组列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62165220/
我是一名优秀的程序员,十分优秀!