gpt4 book ai didi

pandas - 根据每行的列表值对 Pandas 数据帧进行排序

转载 作者:行者123 更新时间:2023-12-04 00:13:05 25 4
gpt4 key购买 nike

此数据框有 ["Monthly","Weekly","Daily"] 列,每一行由列表或 None 类型组成。

如何将列表条目与正确的列对齐?

例如,在第 1 行,包含每日和每月字符串的列表应相互交换。在第 0 行,列表应移至 Daily 列。 Weekly 对于两行都是正确的。

enter image description here

数据

{'每月': {0: [1.352129999999999, '20', '每日'], 1: [1.344164999999999, '12', '每日']}, '每周': {0: [1.35305 , '12', 'weekly'], 1: [1.34481, '11', 'weekly']}, 'Daily': {0: None, 1: [1.3449900000000001, '4', 'monthly']}}

最佳答案

重新创建您的数据

dat = {i: {f: [*_, f] for *_, f in filter(None, lists)} for i, *lists in df.itertuples()}

pd.DataFrame.from_dict(dat, 'index').mask(pd.isna, None)

daily weekly monthly
0 [1.352129999999999, 20, daily] [1.35305, 12, weekly] None
1 [1.344164999999999, 12, daily] [1.34481, 11, weekly] [1.3449900000000001, 4, monthly]

刚刚注意到列名没有大写。

dat = {i: {f.title(): [*_, f] for *_, f in filter(None, lists)} for i, *lists in df.itertuples()}

pd.DataFrame.from_dict(dat, 'index').mask(pd.isna, None)

Daily Weekly Monthly
0 [1.352129999999999, 20, daily] [1.35305, 12, weekly] None
1 [1.344164999999999, 12, daily] [1.34481, 11, weekly] [1.3449900000000001, 4, monthly]

关于pandas - 根据每行的列表值对 Pandas 数据帧进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66663612/

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