重新索引 Pandas 数据框
Reindex a Pandas Dataframe
我在 Python 中有一个 pandas 数据框。
datetime machineID
0 2021-10-01 00:00:00 1.0
1 2021-10-01 00:00:00 2.0
2 2021-10-01 00:00:00 3.0
3 2021-10-01 00:00:00 4.0
4 2021-10-01 00:00:00 5.0
... ... ...
443 2021-10-07 12:00:00 28.0
444 2021-10-07 12:00:00 29.0
445 2021-10-07 12:00:00 30.0
446 2021-10-07 12:00:00 31.0
447 2021-10-07 12:00:00 32.0
从 2021-10-01 到 2021-10-07,此数据框中有 7 天。这是按照日期时间编入索引的,就像每个 machineID 一样,所有 machineID 都在该日期出现,然后在下一个日期出现所有 machineID,依此类推。
我想要的是,我想重新索引这个数据框,这样对于每个 machineID,所有 7 个日期都会出现,然后对于下一个 machineID 所有日期都会出现。像这样,
datetime machineID
0 2021-10-01 00:00:00 1.0
1 2021-10-02 00:00:00 1.0
2 2021-10-03 00:00:00 1.0
3 2021-10-04 00:00:00 1.0
4 2021-10-05 00:00:00 1.0
... ... ...
443 2021-10-03 12:00:00 32.0
444 2021-10-04 12:00:00 32.0
445 2021-10-05 12:00:00 32.0
446 2021-10-06 12:00:00 32.0
447 2021-10-07 12:00:00 32.0
我找不到任何方法。
您应该告诉 pandas 在您的自定义排序列上重新编制索引
df = df.sort_values(by='datetime',ignore_index=True)
您可以简单地按 machineID 对数据帧进行排序,例如:
df = df.sort_values(by=['machineID'], ignore_index=True)
我想你可能正在寻找 df.sort_values()
df.sort_values(by=['machineID', 'datetime'])
您可能需要修改参数 以获得您想要的结果。
此处提供文档:
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.sort_values.html
我在 Python 中有一个 pandas 数据框。
datetime machineID
0 2021-10-01 00:00:00 1.0
1 2021-10-01 00:00:00 2.0
2 2021-10-01 00:00:00 3.0
3 2021-10-01 00:00:00 4.0
4 2021-10-01 00:00:00 5.0
... ... ...
443 2021-10-07 12:00:00 28.0
444 2021-10-07 12:00:00 29.0
445 2021-10-07 12:00:00 30.0
446 2021-10-07 12:00:00 31.0
447 2021-10-07 12:00:00 32.0
从 2021-10-01 到 2021-10-07,此数据框中有 7 天。这是按照日期时间编入索引的,就像每个 machineID 一样,所有 machineID 都在该日期出现,然后在下一个日期出现所有 machineID,依此类推。
我想要的是,我想重新索引这个数据框,这样对于每个 machineID,所有 7 个日期都会出现,然后对于下一个 machineID 所有日期都会出现。像这样,
datetime machineID
0 2021-10-01 00:00:00 1.0
1 2021-10-02 00:00:00 1.0
2 2021-10-03 00:00:00 1.0
3 2021-10-04 00:00:00 1.0
4 2021-10-05 00:00:00 1.0
... ... ...
443 2021-10-03 12:00:00 32.0
444 2021-10-04 12:00:00 32.0
445 2021-10-05 12:00:00 32.0
446 2021-10-06 12:00:00 32.0
447 2021-10-07 12:00:00 32.0
我找不到任何方法。
您应该告诉 pandas 在您的自定义排序列上重新编制索引
df = df.sort_values(by='datetime',ignore_index=True)
您可以简单地按 machineID 对数据帧进行排序,例如:
df = df.sort_values(by=['machineID'], ignore_index=True)
我想你可能正在寻找 df.sort_values()
df.sort_values(by=['machineID', 'datetime'])
您可能需要修改参数
此处提供文档:
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.sort_values.html