gpt4 book ai didi

python - 是否可以在python中将多索引更改为正常

转载 作者:行者123 更新时间:2023-11-28 22:18:14 25 4
gpt4 key购买 nike

所以我有一个包含 4 个 ID 的数据集,每个 ID 有 70 个值,存在值和缺失值。我用下面的代码计算了 present 和 absent 值的数量

df=pd.pivot_table(df,index=["ID",'status'], values=["Sem1"], aggfunc=[len]).reset_index() 
df['ID'] = df['ID'].mask(df['ID'].duplicated(), '')
df
ID Status len
Sem1
4234 Present 45
Absent 25
4235 Present 40
Absent 30
4236 Present 35
Absent 35
4237 Present 50
Absent 20

In: df.columns
Out:ultiIndex(levels=[['len', 'status', 'ID'], ['sem1', '']],
labels=[[2, 1, 0], [1, 1, 0]])

我需要将列分别添加到两个不同的数据框中有什么办法可以分开列吗?另外想知道能不能改成下面的数据集?

  ID         Status      Sem1
4234 Present 45
Absent 25
4235 Present 40
Absent 30
4236 Present 35
Absent 35
4237 Present 50
Absent 20
In:df.columns
Out:Index(['ID', 'Status','Sem1'], dtype='object')

这可以从以前的数据集中完成吗

最佳答案

对我来说,您的解决方案效果很好。

df = pd.DataFrame({'Sem1':[1,3,5,7,1,0],
'Sem2':[5,3,6,9,2,4],
'ID':list('aaabbb')})

print (df)
Sem1 Sem2 ID
0 1 5 a
1 3 3 a
2 5 6 a
3 7 9 b
4 1 2 b
5 0 4 b

df1 = df.groupby('ID').mean().reset_index()
print (df1)
ID Sem1 Sem2
0 a 3.000000 4.666667
1 b 2.666667 5.000000

编辑:

删除[]:

df = pd.pivot_table(df,index=["ID",'status'], values="Sem1", aggfunc='size').reset_index() 

关于python - 是否可以在python中将多索引更改为正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50692842/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com