Pandas/Python将包含两列的序列转换为datafram

2024-10-01 11:41:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我的问题很简单,但我在stackexchange或google上找不到答案。在pandapsforpython中,如何将包含两列的序列转换回数据帧?我的系列(agggenfreq)如下。 生成它的代码是:

agggenfreq=df2000[['freq','name','sex']].groupby(['name', 'sex']).sum()['freq']

其中,df2000是包含以下列的数据帧:

^{pr2}$

聚合频率:

 name       sex
 Aaden      F          5
            M       2980
 Aaliah     F        518
 Aaliya     F        583
 Aaliyah    F      40975
            M         49
 Aamir      M        607
 Aaniyah    F        741
 Aanya      F        954
 Aaralyn    F        581
 Aarav      M       1374
 Aaron      F        365
            M      94269
 Aarush     M        763
 Aarya      F        375
            M        190
 Aaryan     M        560
 Aaryn      F        293
            M        272
 Aayush     M        632
 Abagail    F       3051
 Abbey      F       5230
            M          6

有没有一个好方法可以把它转换回一个数据帧?如果在这个系列中只有一个专栏(我认为这在技术上不是正确的术语,但是你应该知道我的意思)我会这样做:

数据=pd数据帧({'agg':aggfreq,'name':聚集频率索引})在

如何用两列来完成这个任务? 提前谢谢。 编辑:如果有人知道一种更好的方法来实现上述(第一)功能,而不必制作系列,我很想知道:)


Tags: 数据方法答案代码namegoogle序列频率
2条回答

@BrenBarn的答案是正确的。如果要避免首先创建多重索引,可以运行 agggenfreq = df2000.groupby(['name', 'sex'], as_index=False).freq.sum() 这样就得到了一个数据帧。在

as_index=False标志将分组变量扩展为列。我还简化了命令。在

这是一个有多重索引的序列。您可以通过执行agggenfreq.reset_index()来获取数据帧。在

相关问题 更多 >