[英]How to sort a column in a dataframe containing a list of dates?
我有一个包含与包含日期列表的列关联的列id
的数据框。 这些列可以包含 1 个或多个日期,但它们没有排序。 如何按时间顺序对列dates
的每一行进行排序?
data = [
[
1,
[
"2017-12-06",
"2017-12-05",
"2017-12-06",
"2018-01-03",
"2018-01-04",
"2017-11-24",
],
],
[
2,
[
"2017-12-06",
"2017-12-05",
"2017-12-06",
"2019-01-03",
],
],
]
df = pd.DataFrame(data, columns=["id", "dates"])
df
id dates
1 [2017-12-06, 2017-12-05, 2017-12-06, 2018-01-03, 2018-01-04, 2017-11-24]
2 [2017-12-06, 2017-12-05, 2017-12-06, 2019-01-03]
我想要什么(按时间顺序排列的日期):
id dates
1 [2017-11-24, 2017-12-05, 2017-12-06, 2018-01-03, 2018-01-04]
2 [2017-12-05, 2017-12-06, 2019-01-03]
我尝试过的(没有奏效):
f = lambda x: x.sort(key=lambda date: datetime.strptime(date, "%Y-%m-%d"))
df["dates"].apply(f)
(这将返回所有None
)
尝试就地对列表进行排序:
df["dates"].apply(list.sort)
print(df)
印刷:
id dates
0 1 [2017-11-24, 2017-12-05, 2017-12-06, 2017-12-06, 2018-01-03, 2018-01-04]
1 2 [2017-12-05, 2017-12-06, 2017-12-06, 2019-01-03]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.