如何让含数组列的Pandas DataFrame写入CSV时保留逗号分隔
问题描述
使用pandas读取parquet文件到DataFrame,代码及初始DataFrame内容如下:
import pandas as pd dat1 = pd.read_parquet("myParquetFile.parquet") dat1
初始DataFrame显示:
Name Age Numbers John 33 [12.0, 0.99989, 0.3456] Zorro 34 [0.98,0.0009,.123]
调用to_csv写入CSV后,文件内容变为:
Name Age Numbers John 33 [12.0 0.99989 0.3456] Zorro 34 [0.98 0.0009 .123]
需要实现将DataFrame写入CSV时,Numbers列的数组元素保持逗号分隔,期望格式如下:
Name Age Numbers John 33 [12.0, 0.99989, 0.3456] Zorro 34 [0.98,0.0009,.123]
解决方案
pandas默认导出列表类型数据到CSV时,会将列表元素的逗号分隔替换为空格,因此需要先将Numbers列的列表转换为带逗号分隔的字符串格式,再执行写入操作。
代码实现
import pandas as pd # 读取parquet文件 dat1 = pd.read_parquet("myParquetFile.parquet") # 将Numbers列的列表转换为带逗号分隔的字符串 # 若需要逗号后带空格,将','改为', '即可 dat1['Numbers'] = dat1['Numbers'].apply(lambda lst: f"[{','.join(map(str, lst))}]") # 写入CSV文件 dat1.to_csv("myCSVFile.csv", index=False)
说明
通过apply遍历Numbers列的每个列表,用join将列表元素拼接为逗号分隔的字符串,并包裹方括号,强制保留所需的分隔格式,避免pandas导出时自动替换分隔符。
内容的提问来源于stack exchange,提问作者5122014009
相关产品推荐
相关产品推荐

