我是熊猫新手。我有赞助商,公司采取考试的数据帧:熊猫:通过两个不同的维度创建数据透视表?
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'])
但是,这给了我一个空的数据帧。
我想我需要一个数据透视表来转换年份并传递状态......但我不知道从哪里开始。
UPDATE:取得了一些进展:
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文件的列。
这是惊人的,谢谢! – Richard