【发布时间】:2020-07-21 20:19:30
【问题描述】:
看起来我的最后一个问题已经结束,但我第一次忘记提及下面的更新。只修改了一些列,而不是全部。
在 Pandas DataFrame 中修改(排序)一系列数据的最佳方法是什么?
比如导入一些数据后,colums应该是升序的,但如果不是,我需要重新排序数据。数据正在从csv 导入到pandas.df。
num_1 num_2 num_3
date
2020-02-03 17 22 36
2020-02-06 52 22 14
2020-02-10 5 8 29
2020-02-13 10 14 30
2020-02-17 7 8 19
理想情况下,我会在 Dataframe 中找到第二行(熊猫系列)作为要修复的记录:
num_1 num_2 num_3 num_4 num_5
date
2020-02-06 52 22 14 25 27
并将其修改为:(仅对数字 1-3 进行排序,而不涉及第 4 和 5 列)
num_1 num_2 num_3 num_4 num_5
date
2020-02-06 14 22 52 25 27
我可以遍历 DataFrame 并通过将每一列与正确的列进行比较来检查序列数据乱序的索引。然后编写一个自定义排序器并将该记录重写回 Dataframe,但这似乎很笨重。
我不得不想象有一种更 Pythonic (Pandas) 的方式来做这种事情。我只是在熊猫文档中找不到它。我不想对行重新排序,只需确保值在列中的顺序正确。
更新:我忘了提到最关键的方面之一。 DataFrame 中还有其他列不应被触及。所以在下面的例子中,只有sort (num_1, num_2, num_3) 而不是其他的。我猜我可以使用已经提出的解决方案,拆分 DataFrame,对第一部分进行排序并将它们重新合并在一起。有其他选择吗?
【问题讨论】: