如何将DataFrame列中列表格式的日期转为逗号分隔字符串?
问题
能否将DataFrame中df['date']列里的列表格式日期元素去除列表结构,转为逗号分隔的字符串?
示例DataFrame:
import pandas as pd 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']]
解决方案
你的代码逻辑本身是正确的,未得到预期结果大概率是查看输出的方式有误。另外,由于date列的列表元素本身就是字符串,map(str)可以省略,直接用','.join(l)更简洁。
方法一:列表推导式
df['date_2'] = [','.join(l) for l in df['date']]
方法二:使用apply方法
用Pandas的apply方法实现,代码更直观:
df['date_2'] = df['date'].apply(lambda x: ','.join(x))
验证输出
执行上述代码后,用以下方式打印结果即可得到你想要的格式:
print(df['date_2'].to_string(index=False))
输出结果:
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
内容的提问来源于stack exchange,提问作者Nev1111
相关产品推荐
相关产品推荐

