数据框的行顺序不同,如何用规则对所有行进行排序?

时间:2019-07-13 23:53:56

标签: pandas csv dataframe data-cleaning

已解决,遵循了这篇文章的想法: Fastest way to sort each row in a pandas dataframe

如果可以通过R或Excel实现,请也分享您的想法,谢谢。 从csv或txt读取的数据,列名随每个值一起提供。 行的顺序可能不同,例如:

Row#4: col1 - col2 - col3 - col4 - col6 - col5 - col7

Row#5: col1 - col2 - col3 - col5 - col6 - col7 - col4

Row#6: col1 - col2 - col4 - col5 - col6 - col3 - col7

Row#7: col1 - col3 - col4 - col2 - col5 - col6 - col7
1   "colname1": 00001,  "col2": 36, "col3": "male", "col4": "MA",    "col5": "AAA",  "col6": 10.20,  "col7": 200

2   "colname1": 00002,  "col2": 37, "col3": "female",   "col4": "CA",    "col5": "BBB",  "col6": 10.21,  "col7": 201

3   "col1": 00003,  "col2": 38, "col3": "female",   "col4": "NY",    "col5": "CCC",  "col6": 10.22,  "col7": 202

4   "col1": 00004,  "col2": 39, "col3": "female",   "col4": "CA",    "col6": 10.23,  "col5": "DDD",  "col7": 203

5   "col1": 00005,  "col2": 40, "col3": "male",  "col5": "EEE",  "col6": 10.24,  "col7": 204,   "col4": "WA"

6   "col1": 00006,  "col2": 41, "col4": "GA",    "col5": "FFF",  "col6": 10.25, "col3": "male",  "col7": 205

7   "col1": 00007,  "col3": "male", "col4": "CA",   "col2": 42,  "col5": "GGG",  "col6": 10.26,  "col7": 206

8   "col1": 00008,  "col2": 43, "col3": "female",   "col4": "CA",    "col5": "HHH",  "col6": 10.27,  "col7": 207

尝试df.insertdf.sort_values均无效; 可能需要一些功能来重新排列数据帧中的单元格, 或某些功能可以根据列名读取数据。

希望所有行以正确的顺序读入数据框,或者可以相应地调整数据框单元格:

使用python / pandas可以做到这一点,以获得df的样子:

Row#1: col1 - col2 - col3 - col4 - col5 - col6 - col7

Row#n: col1 - col2 - col3 - col4 - col5 - col6 - col7

1 个答案:

答案 0 :(得分:0)

已解决,遵循下一篇文章的想法:按每一行排序,然后使用原始形状将其传输回DataFrame。

Fastest way to sort each row in a pandas dataframe