Python dcast和聚合到熊猫的长度
我来自R的背景,所以努力实现我可以在R中轻松实现的目标,我有以下数据帧Python dcast和聚合到熊猫的长度,python,pandas,Python,Pandas,我来自R的背景,所以努力实现我可以在R中轻松实现的目标,我有以下数据帧 ID credit_active credit_currency credit_type 1 Active Dollars Home 1 Closed Dollars Home 1 Active Euro Home 2 Active
ID credit_active credit_currency credit_type
1 Active Dollars Home
1 Closed Dollars Home
1 Active Euro Home
2 Active Dollars Home
2 Closed Dollars Home
2 Active Euro Home
我想要以下格式的数据
ID Active Closed Dollars Euro Home
1 2 1 2 1 3
2 2 1 2 1 3
我可以用如下简单的命令在R中实现这一点
dcast(melt(setDT(bureau), id.var = 'ID'), ID ~ value)
如何做相同的事情?通过以下方式使用、聚合和最后重塑:
另一个解决方案包括:
或与:
抱歉,这是一个基本问题,我们如何将第一列名称更改为ID?当我尝试将
ID
的数据类型更改为object
df['ID']=df['ID'].astype(object)
时,它给了我一个错误。我可以使用reset\u index
来执行此操作。谢谢
df = df.melt('ID').groupby(['ID', 'value']).size().unstack(fill_value=0)
df = df.melt('ID').pivot_table(index='ID', columns='value', aggfunc='size')
df1 = df.melt('ID')
df = pd.crosstab(df1['ID'], df1['value'])
print (df)
value Active Closed Dollars Euro Home
ID
1 2 1 2 1 3
2 2 1 2 1 3