如何通过内置方法将纯日期Pandas DataFrame转换为Python集合?
将日期型DataFrame转为Python集合(无循环、无表头)
当然有办法,用Pandas内置方法就能快速实现,无需手动循环:
方法1:利用stack()扁平化后转集合
stack()会把DataFrame的所有元素堆叠成一个一维Series,自动跳过表头,直接取所有单元格的值,再转成集合即可:
date_collection = set(df.stack())
方法2:用to_numpy()扁平化数组
先把DataFrame转为numpy数组,再用flatten()压成一维,最后转集合:
date_collection = set(df.to_numpy().flatten())
示例验证
假设你的DataFrame结构如下:
import pandas as pd from datetime import datetime df = pd.DataFrame({ 'A': [datetime(2024, 1, 1), datetime(2024, 1, 2)], 'B': [datetime(2024, 1, 3), datetime(2024, 1, 1)] })
运行上面任意一种方法,都会得到集合:{datetime.datetime(2024, 1, 1, 0, 0), datetime.datetime(2024, 1, 2, 0, 0), datetime.datetime(2024, 1, 3, 0, 0)}
补充说明
如果DataFrame存在缺失日期(NaT),转换时会被包含进集合。若要过滤掉缺失值,可先执行df = df.dropna()再进行转换。
内容的提问来源于stack exchange,提问作者john wick
相关产品推荐
相关产品推荐

