我有一个这样的数据帧:
df = pd.DataFrame({'country': ['usa','canada','usa','canada','mexico','usa'],
'color': ['silver','brown','brown','black','silver','black'],
'car': ['honda','honda','nissan','toyota','honda','toyota'],
'value': range(60,66)})
car color country value
0 honda silver usa 60
1 honda brown canada 61
2 nissan brown usa 62
3 toyota black canada 63
4 honda silver mexico 64
5 toyota black usa 65
I can pivot by two indices like this:
df.pivot_table(index=['color','car'], columns='country', values='value')\
.rename_axis(None, axis=1).reset_index()
color car canada mexico usa
0 black toyota 63.0 NaN 65.0
1 brown honda 61.0 NaN NaN
2 brown nissan NaN NaN 62.0
3 silver honda NaN 64.0 60.0
我想知道我们如何使用GROUPBY实现相同的结果?
感谢帮助。
类似的问题:
Pandas列值到列?
按颜色、汽车和国家对数据框进行分组,并找到列值的平均值。拆散并reset_index。
new_df = df.groupby(['color', 'car', 'country']).value.mean().unstack().reset_index()
new_df.columns.name = None
color car canada mexico usa
0 black toyota 63.0 NaN 65.0
1 brown honda 61.0 NaN NaN
2 brown nissan NaN NaN 62.0
3 silver honda NaN 64.0 60.0
问题内容: 我有一个如下所示的df: 我正在尝试创建一个如下所示的df: 我试过了 但这不是我要寻找的。 任何指导表示赞赏 问题答案: 那不是新的专栏,而是新的DataFrame: 要获得想要的结果,请使用: 要获得“新列”,您可以使用transform: 我建议阅读docs的split- apply-combine部分 。
问题内容: 我正在将具有两列(A和B)的记录列表转换成矩阵表示形式。我一直在熊猫中使用数据透视功能,但结果最终还是很大。大熊猫支持枢轴化为稀疏格式吗?我知道我可以先将其旋转,然后将其转换为某种稀疏表示,但并不像我想要的那么优雅。我的最终目标是将其用作预测模型的输入。 另外,大熊猫之外是否还有某种稀疏的枢轴能力? 编辑:这是一个非稀疏枢轴的示例 这将创建一个矩阵,其中可能包含人和事物的所有可能组合,
问题内容: 给定下面的熊猫DataFrame: 我想对数据重新采样以每小时计数一次,同时按位置分组以生成如下所示的数据框: 我尝试了resample()和groupby()的各种组合,但是没有运气。我将如何处理? 问题答案: 在我的原始帖子中,我建议使用。如今,使用代替。语法在很大程度上是相同的,但现在已不支持。 此外,虽然只能按DatetimeIndex分组,但可以按日期时间 列进行分组,而您可
问题内容: 我正在尝试使用具有相似列值的行来估算值。 例如,我有这个数据框 我想使用相似的列[‘one’]和[‘two’]的键,并且如果列[‘three’]并非完全是nan,则从具有相似的键的行中插值[ ‘3’] 这是我的愿望结果 您会看到键1和3不包含任何值,因为现有值不存在。 我试过使用groupby fillna() 这给了我一个错误。 我尝试了正向填充,这给了我一个相当奇怪的结果,那就是它
我有一个df,看起来像: 作为pd进口熊猫 df df
我必须根据以下col1、col2和loc的数据进行分组,并计算col3中的项数。此外,还应考虑开始和结束日期,即日期应在2021 1月1日至2021 1月31日之间。最终结果应显示在col4中。 数据 预期输出