<p>我已经尽量使它可读。
您的日期似乎总是列中的最后8个字符<code>Incident history</code>。你可以按你所做的选择它们。我用负指数。在</p>
<p>然后我使用<code>to_datetime</code><a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.to_datetime.html" rel="nofollow noreferrer">(doc)</a>将string类型的列转换为datetime</p>
<p>要对数据帧进行排序,可以使用<code>sort_values</code>,方法是精确地对列进行排序<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.sort_values.html" rel="nofollow noreferrer">(doc)</a></p>
<pre><code>df = pd.DataFrame([
["Class II : R : 20180920"],
["Class II : O : 20181109"],
["Class O : D1 : 20170601"],
["Class O : D1 : 20190219"]],
columns=["Incident history"])
print(df)
# Incident history
# 0 Class II: R: 20180920
# 1 Class II: O: 20181109
# 2 Class O: D1: 20170601
# 3 Class O: D1: 20190219
# Create a string variable containing the date
df["date"] = df["Incident history"].str[-8:]
print(df)
# Incident history date_string
# 0 Class II: R: 20180920 20180920
# 1 Class II: O: 20181109 20181109
# 2 Class O: D1: 20170601 20170601
# 3 Class O: D1: 20190219 20190219
# Transform the date column to the type "date"
df["date"] = pd.to_datetime(df["date"], format="%Y%m%d", yearfirst=True)
print(df)
# Incident history date
# 0 Class II: R: 20180920 2018-09-20
# 1 Class II: O: 20181109 2018-11-09
# 2 Class O: D1: 20170601 2017-06-01
# 3 Class O: D1: 20190219 2019-02-19
# Sort according to date
df = df.sort_values(by='date')
print(df)
# Incident history date
# 2 Class O: D1: 20170601 2017-06-01
# 0 Class II: R: 20180920 2018-09-20
# 1 Class II: O: 20181109 2018-11-09
# 3 Class O: D1: 20190219 2019-02-19
# Optional : remove the date from "Incident history"
df["Incident history"] = df["Incident history"].str[:-10]
print(df)
# Incident history date
# 2 Class O: D1 2017-06-01
# 0 Class II: R 2018-09-20
# 1 Class II: O 2018-11-09
# 3 Class O: D1 2019-02-19
</code></pre>