我在 pandas 数据框中有多个以下格式的日期列表:
col1 col2
1 [DatetimeIndex(['2018-10-01', '2018-10-02',
'2018-10-03', '2018-10-04'],
dtype='datetime64[ns]', freq='D')
我想去掉 DatetimeIndex
和 dtype='datetime64[ns]', freq='D'
并将列表变成一个集合。我要寻找的格式是:
{'2018-10-01', '2018-10-02', '2018-10-03', '2018-10-04}
最佳答案
Pandas 的设计目的不是为了保存系列值内的集合,因此强烈建议不要这样做。更好的想法是加入额外的列,尤其是在每个 DatetimeIndex
系列值中具有一致数量的值时:
D = pd.DatetimeIndex(['2018-10-01', '2018-10-02', '2018-10-03', '2018-10-04'],
dtype='datetime64[ns]', freq='D')
df = pd.DataFrame({'col1': [1], 'col2': [D]})
df = df.join(pd.DataFrame(df.pop('col2').values.tolist()))
print(df)
col1 0 1 2 3
0 1 2018-10-01 2018-10-02 2018-10-03 2018-10-04
<小时/>
如果您确实想要一个set
作为每个系列值,您可以通过map
+ set
来实现:
df['col2'] = list(map(set, df['col2'].values))
print(df)
col1 col2
0 1 {2018-10-01 00:00:00, 2018-10-02 00:00:00, 201...
关于python - 从日期列表中删除单词 DateTimeIndex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52607438/