使用 pandas 聚合表
Posted
技术标签:
【中文标题】使用 pandas 聚合表【英文标题】:aggregating the table using pandas 【发布时间】:2018-10-24 03:44:16 【问题描述】:下面是输入。
X Y Z
AP 1 1 1
Karnataka 0 1 0
Goa 1 1 0
Tamilnadu 0 1 0
AP 0 1 1
Goa 0 0 0
Tamilnadu 0 1 1
Goa 0 0 0
AP 1 0 0
Tamilnadu 0 1 0
Tamilnadu 1 1 0
Goa 0 1 1
Karnataka 0 0 0
Karnataka 0 1 0
要执行的计算:
A 列中存在的状态数
X 列中存在的 1 的数量除以 A 列中每个状态的计数
代码应该是动态的,因为列数和行数可能会有所不同。
预期输出:
Total AP Karnataka Goa Tamilnadu
Total Sample 14 3 3 4 4
X 0.2857 0.6667 0.0000 0.2500 0.2500
Y 0.7143 0.6667 0.6667 0.5000 1.0000
Z 0.2857 0.6667 0.0000 0.2500 0.2500
【问题讨论】:
你有什么尝试吗? 【参考方案1】:我确信有更好的方法,但以下方法可行。
假设 my_df 有输入数据;
result=my_df.groupby('A').mean().transpose()
result1=my_df.groupby('A').sum().transpose()
result1=result1.append(my_df['A'].value_counts())
result1=result1.rename('A':'Total Sample')
result1['Total']=result1.apply('sum',axis=1)
finalRow=result1.iloc[len(result1)-1]
for i in range(len(result1)-1):
result1.iloc[i]=result1.iloc[i]/finalRow
result['Total']=result1['Total']
result=result.append(result1.loc['Total Sample'])
完成!!!
【讨论】:
以上是关于使用 pandas 聚合表的主要内容,如果未能解决你的问题,请参考以下文章
Pandas 均值数据透视表包含 NaN 值,即使在聚合之前填充了数据
在列*和*索引上使用 groupby 并与 pandas 数据框聚合
python使用pandas通过聚合获取时序数据的最后一个指标数据(例如长度指标时间指标)生成标签并与原表连接(join)进行不同标签特征的可视化分析