gpt4 book ai didi

python - 如何在列名子组中独立地重新排列 pandas 数据框的每一行?

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

我需要重新排列数据框同一行内的数据,其中某些列可能没有数据。原始数据框:

  hash   a1   a2   a3    a4    a5    b1    b2    b3    b4    b5
0 1 2 nan nan nan 1 2 3 4 nan
1 1 nan nan nan nan 1 2 3 nan nan

我希望拥有的数据框:

  hash   a1    a2     a3     a4     a5    b1    b2     b3    b4    b5
0 nan nan nan 1 2 nan 1 2 3 4
1 nan nan nan nan 1 nan nan 1 2 3

最佳答案

使用justify通过 x[0] 选择列名称的第一个字母和 axis=1 按列分组的 lambda 函数按组应用函数:

df = df.set_index('hash')
f = lambda x: pd.DataFrame(justify(x.values, invalid_val=np.nan, side='right'),
columns=[f'{x.name}{y}' for y in range(1, len(x.columns) + 1)])
df = df.groupby(lambda x: x[0], axis=1).apply(f)
print (df)
a1 a2 a3 a4 a5 b1 b2 b3 b4 b5
0 NaN NaN NaN 1.0 2.0 NaN 1.0 2.0 3.0 4.0
1 NaN NaN NaN NaN 1.0 NaN NaN 1.0 2.0 3.0

关于python - 如何在列名子组中独立地重新排列 pandas 数据框的每一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55731980/

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