是否可以从列表结构中删除列df['date']
下的逗号分隔的日期元素并将其存储为字符串?示例dataframe:
df=pd.DataFrame({'date':[['2022-06-24'],['2021-07-07','2021-07-14'],
['2021-08-11','2021-12-17','2021-09-14','2022-02-15'],
['2019-08-19','2019-09-25'],
['2013-05-16']]})
输出应该像这样:
2022-06-24
2021-07-07,2021-07-14
2021-08-11,2021-12-17,2021-09-14,2022-02-15
2019-08-19,2019-09-25
2013-05-16
我试着:
df['date_2'] = [','.join(map(str, l)) for l in df['date']]
但是没有得到想要的输出
展开列表,然后按索引分组并加入所有日期:
>>> df['date'].explode().groupby(level=0).agg(','.join)
0 2022-06-24
1 2021-07-07,2021-07-14
2 2021-08-11,2021-12-17,2021-09-14,2022-02-15
3 2019-08-19,2019-09-25
4 2013-05-16
Name: date, dtype: object
替代:
>>> df['date'].apply(lambda x: ','.join(x))
0 2022-06-24
1 2021-07-07,2021-07-14
2 2021-08-11,2021-12-17,2021-09-14,2022-02-15
3 2019-08-19,2019-09-25
4 2013-05-16
Name: date, dtype: object
由@jezrael (建议的最佳解决方案)
>>> df['date'].str.join(',')
0 2022-06-24
1 2021-07-07,2021-07-14
2 2021-08-11,2021-12-17,2021-09-14,2022-02-15
3 2019-08-19,2019-09-25
4 2013-05-16
Name: date, dtype: object