gpt4 book ai didi

python - Pandas :分别对每一列进行排序

转载 作者:太空狗 更新时间:2023-10-30 02:31:00 25 4
gpt4 key购买 nike

我的数据框看起来像这样,只是大得多。

d = {'Col_1' : pd.Series(['A', 'B']),
'Col_2' : pd.Series(['B', 'A', 'C']),
'Col_3' : pd.Series(['B', 'A']),
'Col_4' : pd.Series(['C', 'A', 'B', 'D']),
'Col_5' : pd.Series(['A', 'C']),}
df = pd.DataFrame(d)

Col_1 Col_2 Col_3 Col_4 Col_5
A B B C A
B A A A C
NaN C NaN B NaN
NaN NaN NaN D NaN

首先,我尝试单独对每一列进行排序。我试过玩类似的东西:错误。我如何单独对每一列进行排序以得到类似的结果:

Col_1  Col_2  Col_3  Col_4  Col_5
A A A A A
B B B B C
NaN C NaN C NaN
NaN NaN NaN D NaN

其次,我希望连接列中的行

 df = pd.concat([df,pd.DataFrame(df.sum(axis=0),columns=['Concatenation']).T])

在将 np.nan 替换为 '' 后,我可以将所有内容与上面的行结合起来,但结果会被粉碎 ('AB') 在一起,并且需要额外的步骤来清理(变成类似 'A:B' 的东西) .

最佳答案

这是一种方法:

>>> pandas.concat([df[col].order().reset_index(drop=True) for col in df], axis=1, ignore_index=True)
11: 0 1 2 3 4
0 A A A A A
1 B B B B C
2 NaN C NaN C NaN
3 NaN NaN NaN D NaN

[4 rows x 5 columns]

但是,您所做的有点奇怪。 DataFrame 不仅仅是不相关列的集合。在 DataFrame 中,每个 代表一条记录,因此一列中的值在语义上链接到同一行中其他列中的值。通过独立对列进行排序,您将丢弃此信息,因此行现在毫无意义。这就是我的示例中需要 reset_index 的原因。此外,因此,无法就地执行此操作,您的示例表明您想要这样做。

关于python - Pandas :分别对每一列进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24171511/

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