gpt4 book ai didi

python - 将 pandas DataFrame(具有许多列)的所有行分组为给定列中具有相同值的

转载 作者:行者123 更新时间:2023-12-01 02:02:58 24 4
gpt4 key购买 nike

我已经搜索了几个小时。我有一个像这样的 DataFrame :-

     col1.  col2.   col3.   col4
row1. a. p u 0
row2. b. q v 1
row3. a. r w 2
row4. d. s x 3
row5. b. t y 4

现在我想按“col1”的值对所有这些行进行分组,以便我得到:-

     col1.  col2.   col3.   col4
row1. a. p r u w 0,2
row2. b. q t v y 1,4
row3. d. s x 3

现在我找到了一种方法,其中 df.groupby('col1)['col2'].apply(' '.join()) 将按相同值对 'col2' 中的所有行进行分组'col1'。但我无法扩展上述命令,以便将所有列的所有行分组在一起以获得前面提到的输出。

<小时/>

上面的 DataFrame 仅用于说明。实际的 DataFrame 包括大约 100 行和列,所有单元格都存储反馈,除了 col1 之外,它存储反馈所在项目的名称。我想将所有单元格分组基于相同项目(col1)的列,然后我将对 DataFrame 执行情感分析。

最佳答案

您可以使用:

df1 = df.astype(str).groupby('col1').agg(','.join).reset_index()
print (df1)
col1 col2 col3 col4
0 a. p,r u,w 0,2
1 b. q,t v,y 1,4
2 d. s x 3

如果还需要索引:

df1 = df.astype(str).groupby('col1').agg(','.join).reset_index()
df1.index = df.drop_duplicates('col1').index
print (df1)
col1 col2 col3 col4
row1. a. p,r u,w 0,2
row2. b. q,t v,y 1,4
row4. d. s x 3

说明:

  1. 首先通过 astype 将所有列转换为字符串
  2. 然后groupby并通过agg聚合join
  3. 如果需要还可以按 col1 上的第一个值进行索引,请添加 drop_duplicates

关于python - 将 pandas DataFrame(具有许多列)的所有行分组为给定列中具有相同值的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49405101/

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