【发布时间】:2016-07-25 19:09:01
【问题描述】:
我是熊猫新手。我有一个赞助商和公司参加的考试数据框:
import pandas pd
df = pd.DataFrame({
'sponsor': ['A71991', 'A71991', 'A71991', 'A81001', 'A81001'],
'sponsor_class': ['Industry', 'Industry', 'Industry', 'NIH', 'NIH'],
'year': [2012, 2013, 2013, 2012, 2013],
'passed': [True, False, True, True, True],
})
现在我想输出一个 CSV 文件,其中包含每个赞助商及其类别的行,以及按年份的通过率和总率的列:
sponsor,sponsor_class,2012_total,2012_passed,2013_total,2013_passed
A71991,Industry,1,1,2,1
A81001,NIH,1,1,1,1
如何从df 获取到这个重组的数据框?我想我需要按sponsor 和sponsor_class 分组,然后转出总计数,以及passed 的计数是True 按年份,然后展平这些列。 (我知道我以 pd.write_csv(mydf) 结尾。)
我试过从这个开始:
df_g = df.groupby(['sponsor', 'sponsor_class', 'year', 'passed'])
但这给了我一个空的数据框。
我想我需要一个数据透视表来透视年份并传递状态...但我不知道从哪里开始。
更新:到达某处:
df_g = df_completed.pivot_table(index=['lead_sponsor', 'lead_sponsor_class'],
columns='year',
aggfunc=len, fill_value=0)
df_g[['passed']]
现在我需要解决 (1) 如何获取所有行以及 passed 的计数,以及 (2) 如何取消嵌套 CSV 文件的列。
【问题讨论】: