gpt4 book ai didi

python - DataFrame 列按给定列表排序,并为缺失的列添加空列

转载 作者:行者123 更新时间:2023-12-03 16:01:48 31 4
gpt4 key购买 nike

我有一个 DataFrame 如下。

df =  pd.DataFrame(
{
"code": ["AA", "BB", "CC","DD"],
"YA" : [2,1,1,np.nan],
"YD" : [1,np.nan,np.nan,1],
"ZB" : [1,np.nan,np.nan,np.nan],
"ZD" : [1,np.nan,np.nan,1]
}
)
另外,我有一个排序列表。
sort_list = ['YD','YA', 'ZD', 'YB', 'ZA', 'ZB']
我正在尝试根据排序列表添加缺少的列并对 DataFrame 进行排序。
预期输出:
   code YD  YA  ZD  YB  ZA  ZB
0 AA 1.0 2.0 1.0 NaN NaN 1.0
1 BB NaN 1.0 NaN NaN NaN NaN
2 CC NaN 1.0 NaN NaN NaN NaN
3 DD 1.0 NaN 1.0 NaN NaN NaN
我可以使用以下代码获得结果。有没有另一种(简单的)方法来做到这一点?
我的代码:
col_list = list(set(sort_list) - set(df.columns.to_list()))
df1 = pd.DataFrame(index=df.index, columns=col_list)
df1 = df1.fillna(np.nan)
df2 = df.join(df1, how='left')
df2 = df2.set_index('code')
df2 = df2[sort_list]
df2 = df2.reset_index()
df2

最佳答案

尝试使用 reindex :

df = df.reindex(columns=['code'] + sort_list)

df:
    code    YD  YA  ZD  YB  ZA  ZB
0 AA 1.0 2.0 1.0 NaN NaN 1.0
1 BB NaN 1.0 NaN NaN NaN NaN
2 CC NaN 1.0 NaN NaN NaN NaN
3 DD 1.0 NaN 1.0 NaN NaN NaN

关于python - DataFrame 列按给定列表排序,并为缺失的列添加空列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63165936/

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