gpt4 book ai didi

python - 如何根据另一列连接数据框中一列的唯一字符串

转载 作者:行者123 更新时间:2023-11-28 17:57:46 25 4
gpt4 key购买 nike

我需要根据另一列的值连接一列中的唯一字符串。

我试过 groupby,但要么是我遗漏了一些明显的东西,要么是矫枉过正。

下面是输入数据框。我想为 col1

中的每个值加入来自 col2 的唯一字符串
df = pd.DataFrame([
['a', '', 1],
['a', 's2', 2],
['a', 's2', 3],
['a', 's3', 3],
['b', '', 4],
['b', 's1', 5],
['c', '', 6]],
columns=['col1', 'col2', 'col0'])

我正在寻找这样的输出:

df2 = pd.DataFrame([
['a', '', 1, 's2;s3'],
['a', 's2', 2, 's2;s3'],
['a', 's2', 3, 's2;s3'],
['a', 's3', 3, 's2;s3'],
['b', '', 4, 's1'],
['b', 's1', 5, 's1'],
['c', '', 6, '']],
columns=['col1', 'col2', 'col0', 'col_out'])

我尝试使用转换,但没有一个提供正确的列。我不拘泥于 groupby、transform,只要能正常工作,任何其他方法都可以。

df['col3'] = df.groupby('col1')['col2'].transform(lambda x: ';'.join(x))
df['col4'] = df.groupby('col1', as_index=False)['col2'].transform(lambda x: list(set(x)))
df['col5'] = df['col4'].str.join(';')

最佳答案

我觉得你很接近,在这里添加一个strip:

df2['col_out2'] = df2.groupby('col1')['col2'].transform(lambda x: ';'.join(x.unique())).str.strip(';')

它有输出:

  col1 col2 col0 col_out col_out2
0 a 1 s2;s3 s2;s3
1 a s2 2 s2;s3 s2;s3
2 a s2 3 s2;s3 s2;s3
3 a s3 3 s2;s3 s2;s3
4 b 4 s1 s1
5 b s1 5 s1 s1
6 c 6

关于python - 如何根据另一列连接数据框中一列的唯一字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57421542/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com