gpt4 book ai didi

python - 从字典创建数据框,键和值都是行

转载 作者:太空宇宙 更新时间:2023-11-03 12:13:36 25 4
gpt4 key购买 nike

我有一个字典,其中键是患者 ID,所有键的值都相同:[1, 2, 3],表示每个患者将访问诊所 3 次。如何将其转换为键和值均为行的数据框?

字典:

patients = ['Patient01', 'patient02', 'patient03']
visits = [1,2,3]
dictionary = {k:visits for k in patients}

输出:

{'Patient01': [1, 2, 3],
'patient02': [1, 2, 3],
'patient03': [1, 2, 3]}

我试过了

pd.DataFrame.from_dict(dictionary, orient = 'index')

但是输出是

            0   1   2
patient02 1 2 3
patient03 1 2 3
patient01 1 2 3

我想要的是这样的:

          visit_num
patient01 1
patient01 2
patient01 3
patient02 1
patient02 2
patient02 3
patient03 1
patient03 2
patient03 3

最佳答案

使用pd.stack()在您创建的数据框上:

df = pd.DataFrame.from_dict(dictionary, orient = 'index')

new_df = df.stack().reset_index(level=1, drop=True).to_frame(name='visit_num')

>>> new_df
visit num
Patient01 1
Patient01 2
Patient01 3
patient02 1
patient02 2
patient02 3
patient03 1
patient03 2
patient03 3

解释说明:

df.stack 完成这里的大部分工作,采用您原来的 df

           0  1  2
Patient01 1 2 3
patient02 1 2 3
patient03 1 2 3

并将其转换为以下多索引 pandas.Series:

Patient01  0    1
1 2
2 3
patient02 0 1
1 2
2 3
patient03 0 1
1 2
2 3

该行的其余部分(.reset_index().to_frame())只是为了将其转换为良好的数据帧格式。

关于python - 从字典创建数据框,键和值都是行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49779515/

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