Почему групповые в Пандах печатают не все столбцы? - PullRequest
0 голосов
/ 11 января 2019
q = [{"name":"Mike","age":21, "text": "aaa"},{"name":"Jow","age":22, "text": "bbb"},{"name":"Piter","age":22, "text": "ccc"},{"name":"David","age":25, "text": "ddd"}]
df = pd.DataFrame(q)
result = df["name"].groupby(df['age']).agg(','.join).to_frame()

print(df)
print('---')
print(result)

Выход:

$ app.py
   age   name text
0   21   Mike  aaa
1   22    Jow  bbb
2   22  Piter  ccc
3   25  David  ddd
---
          name
age
21        Mike
22   Jow,Piter
25       David

Но где моя text колонка? Как добавить его в вывод результата?

Ответы [ 2 ]

0 голосов
/ 11 января 2019

Когда вы делаете df["name"], вы нарезаете только столбец "name", поэтому все остальные столбцы «исчезают».

Полагаю, вы пытаетесь сделать следующее:

result = df.groupby('age').agg(','.join)

print(df)
print('---')
print(result)

   age   name text
0   21   Mike  aaa
1   22    Jow  bbb
2   22  Piter  ccc
3   25  David  ddd
---
          name     text
age                    
21        Mike      aaa
22   Jow,Piter  bbb,ccc
25       David      ddd
0 голосов
/ 11 января 2019

Ваш код работает со столбцом Name, поэтому столбец text опущен:

#group column name by column age
result = df["name"].groupby(df['age']).agg(','.join).to_frame()

#more common altearnative - group by column age columns specified in [] after groupby()
result = df.groupby('age')['name'].agg(','.join).to_frame()
print (result)
          name
age           
21        Mike
22   Jow,Piter
25       David

result = df.groupby('age')['text'].agg(','.join).to_frame()
print (result)
        text
age         
21       aaa
22   bbb,ccc
25       ddd

#if need specified multiple columns
result = df.groupby('age')['name','text'].agg(','.join)
print (result)
          name     text
age                    
21        Mike      aaa
22   Jow,Piter  bbb,ccc
25       David      ddd

#if omit [] proceses all non numeric columns
result = df.groupby('age').agg(','.join)
print (result)
          name     text
age                    
21        Mike      aaa
22   Jow,Piter  bbb,ccc
25       David      ddd
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...