在 Pandas Dataframe 中加入列后获取唯一字符串
Get unique strings after joining columns in Pandas Dataframe
我有一个这样的数据框:
data = {'col1':['XXX', 'AAA', 'ZZZ'],'col2':['BBB', 'AAA','TTT'], 'col3': ['BBB', 'CCC', 'TTT'], 'col4': ['XXX', 'CCC', 'ZZZ']}
df = pd.DataFrame(data)
df
我想生成一个将字符串连接在一起但不自动按字母顺序排列的列:
我希望它使用 col1 作为组合的第一部分。
但是,我有 运行 这段代码,并且得到的输出优先考虑字母顺序 - 我不想要这样。我想让它使用代码中规定的顺序
df['combos'] = ["_".join((k for k in set(v) if pd.notnull(k))) for v in
df[["col1", "col2", "col3", "col4"]].values]
df
使用 dict.fromkey
技巧进行原始排序:
df['combos'] = ["_".join(dict.fromkeys(k for k in v if pd.notnull(k))) for v in
df[["col1", "col2", "col3", "col4"]].values]
print (df)
col1 col2 col3 col4 combos
0 XXX BBB BBB XXX XXX_BBB
1 AAA AAA CCC CCC AAA_CCC
2 ZZZ TTT TTT ZZZ ZZZ_TTT
如果没有缺失值:
df['combos'] = ["_".join(dict.fromkeys(v)) for v in
df[["col1", "col2", "col3", "col4"]].values]
我有一个这样的数据框:
data = {'col1':['XXX', 'AAA', 'ZZZ'],'col2':['BBB', 'AAA','TTT'], 'col3': ['BBB', 'CCC', 'TTT'], 'col4': ['XXX', 'CCC', 'ZZZ']}
df = pd.DataFrame(data)
df
我想生成一个将字符串连接在一起但不自动按字母顺序排列的列:
但是,我有 运行 这段代码,并且得到的输出优先考虑字母顺序 - 我不想要这样。我想让它使用代码中规定的顺序
df['combos'] = ["_".join((k for k in set(v) if pd.notnull(k))) for v in
df[["col1", "col2", "col3", "col4"]].values]
df
使用 dict.fromkey
技巧进行原始排序:
df['combos'] = ["_".join(dict.fromkeys(k for k in v if pd.notnull(k))) for v in
df[["col1", "col2", "col3", "col4"]].values]
print (df)
col1 col2 col3 col4 combos
0 XXX BBB BBB XXX XXX_BBB
1 AAA AAA CCC CCC AAA_CCC
2 ZZZ TTT TTT ZZZ ZZZ_TTT
如果没有缺失值:
df['combos'] = ["_".join(dict.fromkeys(v)) for v in
df[["col1", "col2", "col3", "col4"]].values]