【发布时间】:2019-07-13 23:53:56
【问题描述】:
按照这篇文章的想法解决了: 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.insert和df.sort_values,都不管用;
可能需要一些函数来重新排序数据框中的单元格,
或者某些函数可以根据列名读取数据。
希望所有行以正确的顺序读入数据框,或者可以相应地调整数据框单元格:
这是否可以通过 python/pandas 实现,以获得 df 看起来像:
Row#1: col1 - col2 - col3 - col4 - col5 - col6 - col7
Row#n: col1 - col2 - col3 - col4 - col5 - col6 - col7
【问题讨论】:
-
感谢 akrun,已删除 r 标签;但如果这可以通过 R 实现,请分享您的想法,
-
数据集的格式不清楚
-
数据集格式更新了一点,每个单元格/值用逗号分隔;每个单元格的格式为 "columnname": "value"。
-
您能直接分享数据吗?如果是 csv,那么只需复制前 6 行(左右)并粘贴到您问题中的 code-block 中。如果是
data.frame,那么dput(head(x))(在r 中,因为标签仍在您的问题中)。
标签: pandas csv dataframe data-cleaning