我想在python中通过串联col1,col2和col3来创建下面的final concate_col
Col1 col2 col3 concate_col a b b a,b c a a c,a d a e d,a,e
我能够连接这3列,但在每一行中获得唯一的值。我使用df.str.cat连接
n1bvdmb61#
import pandas as pd data = {'col1': ['a', 'c', 'd'], 'col2': ['b', 'a', 'a'], 'col3': ['b', 'a', 'e']} df = pd.DataFrame(data) # Concatenate unique values of col1, col2, and col3 for each row df['concate_col'] = df.apply(lambda row: ','.join(set(row)), axis=1) print(df)
结果:
col1 col2 col3 concate_col 0 a b b b,a 1 c a a c,a 2 d a e d,e,a
tvokkenx2#
df['concate_col'] = df.apply(lambda x: ','.join(set(x)), axis=1)
roqulrg33#
如果顺序很重要,请使用stack/groupby:
stack
groupby
df["concate_col"] = df.stack().groupby(level=0).apply(lambda x: ",".join(pd.unique(x)))
agg的另一个变体:
agg
df["concate_col"] = df.agg(lambda x: ",".join(pd.unique(x)), axis=1)
输出:
print(df) col1 col2 col3 concate_col 0 a b b a,b 1 c a a c,a 2 d a e d,a,e
3条答案
按热度按时间n1bvdmb61#
结果:
tvokkenx2#
roqulrg33#
如果顺序很重要,请使用
stack
/groupby
:agg
的另一个变体:输出: