Здесь я читаю файл "userdata.xlsx":
ID Debt Email Age User
1 7.5 john@email.com 16 John
2 15 john@email.com 15 John
3 22 john@email.com 15 John
4 30 david@email.com 22 David
5 33 david@email.com 22 David
6 51 fred@email.com 61 Fred
7 11 fred@email.com 25 Fred
8 24 eric@email.com 19 Eric
9 68 terry@email.com 55 Terry
10 335 terry@email.com 55 Terry
Здесь я группируюсь по Пользователю, создаю электронную таблицу для каждого пользователя и выводю ее в виде своего собственного файла .xlsx, например:
ID Debt Email Age User
1 7.5 john@email.com 16 John
2 15 john@email.com 15 John
Вот весь код:
#!/usr/bin/env python3
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import xlrd
df = pd.read_excel('userdata.xlsx')
grp = df.groupby('User')
for group in grp.groups:
grouptofile = (grp.get_group(group))
print(grouptofile)
print(group)
grouptofile.to_excel('%s.xlsx' % group , sheet_name='sheet1', index=False)
Теперь я хочу сохранить только выбранные столбцы для сохранения для каждого пользователя.Допустим, я хочу выбрать только столбцы «ID» и «Email».Я узнал, как выбирать только определенные столбцы, например:
selected = df[['ID','Email']]
Теперь я подумал, что имеет смысл добавить сюда идентификатор и адрес электронной почты.
grp = df.groupby('User')
Добавлены "Идентификатор" и "Электронная почта"
grp = df[['ID', 'Email']].groupby('User')
Можно ли даже объединить групповые значения и выбрать столбцы?
#!/usr/bin/env python3
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import xlrd
df = pd.read_excel('userdata.xlsx')
grp = df[['ID', 'Email']].groupby('User')
for group in grp.groups:
grouptofile = (grp.get_group(group))
print(grouptofile)
print(group)
grouptofile.to_excel('%s.xlsx' % group , sheet_name='sheet1', index=False)
ЭтоОшибка при получении:
Traceback (most recent call last):
File "/Users/Barry/Documents/Python/Pandas/exelscript.py", line 22, in <module>
grp = df[['ID', 'Email']].groupby('User')
File "/usr/local/lib/python3.7/site-packages/pandas/core/generic.py", line 6665, in groupby
observed=observed, **kwargs)
File "/usr/local/lib/python3.7/site-packages/pandas/core/groupby/groupby.py", line 2152, in groupby
return klass(obj, by, **kwds)
File "/usr/local/lib/python3.7/site-packages/pandas/core/groupby/groupby.py", line 599, in __init__
mutated=self.mutated)
File "/usr/local/lib/python3.7/site-packages/pandas/core/groupby/groupby.py", line 3291, in _get_grouper
raise KeyError(gpr)
KeyError: 'User'