Lyn*_*ynn 5 python numpy pandas
我有一个数据集 df,我想在其中对两列进行分组,取另一列的总和和计数,并在单独的列中列出字符串
数据
id date pwr type
aa q321 10 hey
aa q321 1 hello
aa q425 20 hi
aa q425 20 no
bb q122 2 ok
bb q122 1 cool
bb q422 5 sure
bb q422 5 sure
bb q422 5 ok
Run Code Online (Sandbox Code Playgroud)
想要的
id date pwr count type
aa q321 11 2 hey
hello
aa q425 40 2 hi
no
bb q122 3 2 ok
cool
bb q422 15 3 sure
sure
ok
Run Code Online (Sandbox Code Playgroud)
正在做
g = df.groupby(['id', 'date'])['pwr'].sum().reset_index()
g['count'] = g['id'].map(df['id'].value_counts())
Run Code Online (Sandbox Code Playgroud)
这工作正常,除了,我不知道如何显示列“类型”的字符串输出任何建议表示赞赏。
您可以使用设置列和.GroupBy.transform()
的值。然后在 4 列上,除了获得与所需输出类似的布局:pwr
count
.set_index()
type
df['pwr'] = df.groupby(['id', 'date'])['pwr'].transform('sum')
df['count'] = df.groupby(['id', 'date'])['pwr'].transform('count')
df.set_index(['id', 'date', 'pwr', 'count'])
Run Code Online (Sandbox Code Playgroud)
输出:
type
id date pwr count
aa q321 11 2 hey
2 hello
q425 40 2 hi
2 no
bb q122 3 2 ok
2 cool
q422 15 3 sure
3 sure
3 ok
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
73 次 |
最近记录: |