猿问

是否有 Python 库可以根据 Col A 对 Col B 的值进行分组并在一行中显示组的所有值?

我希望将以下数据转换为以下预期输出。第 2 列的值必须根据第 1 列中的值分组并显示在一行中。我可以在 Python 中使用我自己的逻辑来执行此操作,但想知道 Pandas 或 Python 中的任何其他库是否提供此类功能以使其更容易。


输入:


1   A

1   B

1   B

2   D

3   A

1   C

4   D

2   A

1   A

3   B

4   A

2   D

2   C

4   C

4   B

4   A

3   A

预期结果:


1   A   B   B   C   A

2   D   A   D   C   

3   A   B   A       

4   D   A   C   B   A


慕无忌1623718
浏览 174回答 3
3回答

四季花海

使用假设0是第一列并且1是第二列。如果第一列是索引替换0为df.indexm=df.groupby(0)[1].apply(list)print(pd.DataFrame(m.values.tolist(),index=m.index).rename_axis(None).fillna(''))   0  1  2  3  41  A  B  B  C  A2  D  A  D  C   3  A  B  A      4  D  A  C  B  A

呼啦一阵风

是pandas的可以做到:import pandas as pd# Create dataframe (or import it)df = pd.DataFrame({"id": [1, 1, 1, 2, 2, 3, 1, 4], "letter" : ["A", "A", "B", "D", "A", "C", "B", "B"]})print(df)结果:    id  letter0   1   A1   1   A2   1   B3   2   D4   2   A5   3   C6   1   B7   4   B然后:df.groupby("id").sum()print(df)结果:id  letter1   AABB2   DA3   C4   B

森林海

您可以使用:df.groupby('id').sum()['letter'].apply(lambda x: ' '.join(x))id1    A B B C A2      D A D C3        A B A4    D A C B A
随时随地看视频慕课网APP

相关分类

Python
我要回答