Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 熊猫重新排列数据帧的行_Python_Python 3.x_Pandas_Dataframe - Fatal编程技术网

Python 熊猫重新排列数据帧的行

Python 熊猫重新排列数据帧的行,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,我在熊猫身上偶然发现了一个非常奇怪的问题。我有这个数据框 ,time,id,X,Y,theta,Vx,Vy,ANGLE_FR,DANGER_RAD,RISK_RAD,TTC_DAN_LOW,TTC_DAN_UP,TTC_STOP,SIM 0,1600349033921610000,0,23.2643889,-7.140948599999999,0,0.020961,-1.1414197,20,0.5,0.9,-1,7,2.0,3 1,1600349033921620000,1,18.537140

我在熊猫身上偶然发现了一个非常奇怪的问题。我有这个数据框

,time,id,X,Y,theta,Vx,Vy,ANGLE_FR,DANGER_RAD,RISK_RAD,TTC_DAN_LOW,TTC_DAN_UP,TTC_STOP,SIM
0,1600349033921610000,0,23.2643889,-7.140948599999999,0,0.020961,-1.1414197,20,0.5,0.9,-1,7,2.0,3
1,1600349033921620000,1,18.5371406,-14.224917,0,-0.0113912,1.443597,20,0.5,0.9,-1,7,2.0,3
2,1600349033921650000,2,19.808648100000006,-6.778450599999998,0,0.037289,-1.0557937,20,0.5,0.9,-1,7,2.0,3
3,1600349033921670000,3,22.1796988,-5.7078115999999985,0,0.2585675,-1.2431861000000002,20,0.5,0.9,-1,7,2.0,3
4,1600349033921670000,4,20.757325,-16.115366,0,-0.2528627,0.7889673,20,0.5,0.9,-1,7,2.0,3
5,1600349033921690000,5,20.9491012,-17.7806833,0,0.5062633,0.9386511,20,0.5,0.9,-1,7,2.0,3
6,1600349033921690000,6,20.6225258,-5.5344404,0,-0.1192678,-0.7889041,20,0.5,0.9,-1,7,2.0,3
7,1600349033921700000,7,21.8077004,-14.736984,0,-0.0295737,1.3084618,20,0.5,0.9,-1,7,2.0,3
8,1600349033954560000,0,23.206789800000006,-7.5171016,0,-0.1727971,-1.1284589,20,0.5,0.9,-1,7,2.0,3
9,1600349033954570000,1,18.555421300000006,-13.7440508,0,0.0548418,1.4426004,20,0.5,0.9,-1,7,2.0,3
10,1600349033954570000,2,19.8409748,-7.126075500000002,0,0.0969802,-1.0428747,20,0.5,0.9,-1,7,2.0,3
11,1600349033954580000,3,22.3263185,-5.9586202,0,0.4398591,-0.752425,20,0.5,0.9,-1,7,2.0,3
12,1600349033954590000,4,20.7154136,-15.842398800000002,0,-0.12573430000000002,0.8189016,20,0.5,0.9,-1,7,2.0,3
13,1600349033954590000,5,21.038901,-17.4111883,0,0.2693992,1.108485,20,0.5,0.9,-1,7,2.0,3
14,1600349033954600000,6,20.612499,-5.810969,0,-0.030080400000000007,-0.8295869,20,0.5,0.9,-1,7,2.0,3
15,1600349033954600000,7,21.7872537,-14.3011986,0,-0.0613401,1.3073578,20,0.5,0.9,-1,7,2.0,3
16,1600349033921610000,0,23.2643889,-7.140948599999999,0,0.020961,-1.1414197,20,0.5,0.9,-1,7,1.5,2
17,1600349033954560000,0,23.206789800000003,-7.5171016,0,-0.1727971,-1.1284589,20,0.5,0.9,-1,7,1.5,2
18,1600349033988110000,0,23.21602,-7.897527,0,0.027693000000000002,-1.1412761999999999,20,0.5,0.9,-1,7,1.5,2
   
这是输入文件

请注意,Id始终从0到7开始,并重复,时间列处于顺序步骤中(这意味着前一行应小于或等于当前行)。

我想对数据帧的行重新排序,如下所示

,time,id,X,Y,theta,Vx,Vy,ANGLE_FR,DANGER_RAD,RISK_RAD,TTC_DAN_LOW,TTC_DAN_UP,TTC_STOP,SIM
0,1600349033921610000,0,23.2643889,-7.140948599999999,0,0.020961,-1.1414197,20,0.5,0.9,-1,7,1.0,2
1,1600349033954560000,0,23.206789800000003,-7.5171016,0,-0.1727971,-1.1284589,20,0.5,0.9,-1,7,1.0,2
2,1600349033988110000,0,23.21602,-7.897527,0,0.027693000000000002,-1.1412761999999999,20,0.5,0.9,-1,7,1.0,2
3,1600349033921610000,0,23.2643889,-7.140948599999999,0,0.020961,-1.1414197,20,0.5,0.9,-1,7,1.5,1
4,1600349033954560000,0,23.206789800000003,-7.5171016,0,-0.1727971,-1.1284589,20,0.5,0.9,-1,7,1.5,1
5,1600349033988110000,0,23.21602,-7.897527,0,0.027693000000000002,-1.1412761999999999,20,0.5,0.9,-1,7,1.5,1
6,1600349033921610000,0,23.2643889,-7.140948599999999,0,0.020961,-1.1414197,20,0.5,0.9,-1,7,1.5,2
7,1600349033954560000,0,23.206789800000003,-7.5171016,0,-0.1727971,-1.1284589,20,0.5,0.9,-1,7,1.5,2
8,1600349033988110000,0,23.21602,-7.897527,0,0.027693000000000002,-1.1412761999999999,20,0.5,0.9,-1,7,1.5,2
9,1600349033921610000,0,23.2643889,-7.140948599999999,0,0.020961,-1.1414197,20,0.5,0.9,-1,7,1.5,3
10,1600349033954560000,0,23.206789800000003,-7.5171016,0,-0.1727971,-1.1284589,20,0.5,0.9,-1,7,1.5,3
11,1600349033988110000,0,23.21602,-7.897527,0,0.027693000000000002,-1.1412761999999999,20,0.5,0.9,-1,7,1.5,3
这是期望的结果

请注意,我需要根据以下列对数据帧行重新排序:id、时间、角度、危险度、风险度、TTC度和下限、TTC度和上限、TTC度和上限、SIM

正如您从期望的结果中看到的,我们需要以从最小到最大的方式对数据帧重新排序,这适用于其余的列,id、sim、角度、危险、风险、TTC和低、TTC和上、TTC和停止

我试图按几列进行排序,但没有成功。此外,我尝试使用groupby,但失败了。 你愿意帮忙解决这个问题吗?欢迎提出任何建议

附言

我有粘贴数据框功能,因此可以通过剪贴板功能轻松读取数据框,以便于复制。


我也附上了图片。

你试着按几列进行排序吗

In [10]: df.sort_values(['id', 'time', 'ANGLE_FR', 'DANGER_RAD', 'RISK_RAD', 'TTC_DAN_LOW', 'TTC_DAN_UP', 'TTC_STOP', 'SIM'])                                                                                      
Out[10]: 
    Unnamed: 0                 time  id        X        Y  theta      Vx      Vy  ANGLE_FR  DANGER_RAD  RISK_RAD  TTC_DAN_LOW  TTC_DAN_UP  TTC_STOP  SIM
0            0  1600349033921610000   0  23.2644  -7.1409      0  0.0210 -1.1414        20         0.5       0.9           -1           7         2    3
8            8  1600349033954560000   0  23.2068  -7.5171      0 -0.1728 -1.1285        20         0.5       0.9           -1           7         2    3
1            1  1600349033921620000   1  18.5371 -14.2249      0 -0.0114  1.4436        20         0.5       0.9           -1           7         2    3
9            9  1600349033954570000   1  18.5554 -13.7441      0  0.0548  1.4426        20         0.5       0.9           -1           7         2    3
2            2  1600349033921650000   2  19.8086  -6.7785      0  0.0373 -1.0558        20         0.5       0.9           -1           7         2    3
这个怎么样:

groupby_cols = ['ANGLE_FR', 'DANGER_RAD', 'RISK_RAD', 'TTC_DAN_LOW', 'TTC_DAN_UP', 'TTC_STOP, SIM']
df = df.groupby(groupby_cols).reset_index()

您只需要按
时间
列排序,对吗?我不明白是什么问题it@SerialLazer我不能得到同样的结果。所以你只想忽略
id
索引,让它们都映射到
0
,是吗?不是。我想把它们分组,因为它们在图片中是彩色的。我需要他们按id、时间、角度、危险度、危险度、危险度、TTC\U低、TTC\U低、TTC\U高、TTC\U停、SIM卡分组。请记住,这是数据样本。在提到的列之间有许多组合。我在输入文件中添加了新行,请注意,以便捕获一些边缘情况!是的,但它没有给我所需的结果。SIM列不是组,例如,它被排序为2,1不是1和2,2如果我们添加到SIM,不仅是3,比如说2,它被排序为2,3。如果我们有2和3的多次出现,它将根据2和3对它们进行排序,而不是将它们分组在同一个括号中2的相同出现。我需要你道歉。你是对的。感谢您提供的解决方案。AttributeError:无法访问“DataFrameGroupBy”对象的可调用属性“reset\u index”,请尝试使用“apply”方法添加新行以捕获某些边缘情况!