Python Pandas使用字典导出CSV时如何去除数据中的列表方括号
问题根因
你遇到的导出CSV带方括号的问题,本质是DataFrame单元格内存储的是列表类型,导出CSV时会直接打印列表的字符串形式,因此会自带[]标识。
解决方案
- 方案1:从数据源侧避免存入列表(最推荐)
构造字典时直接使用标量值,创建DataFrame时传入index参数即可匹配pandas的结构要求,不需要额外把值套成列表:
import pandas as pd # 直接用标量存值,不要套列表 data = {'col_1': 1, 'col_2': 2} # 传入单元素index即可生成单行DataFrame pd.DataFrame(data, index=[0]).to_csv("file.csv", index=False)
导出时加index=False是为了避免CSV多出一列无意义的索引列。
- 方案2:处理已有单元素列表字典
如果你的字典已经是值为单元素列表的结构,不需要修改上游生成逻辑,直接在创建DataFrame时提取列表的第一个元素即可:
import pandas as pd data = {'col_1': [1], 'col_2': [2]} # 遍历字典提取每个列表的首个元素 processed_data = {key: value[0] for key, value in data.items()} pd.DataFrame(processed_data, index=[0]).to_csv("file.csv", index=False)
- 方案3:处理已生成的带列表的DataFrame
如果DataFrame已经创建完成,可批量提取每列列表的首个元素后再导出:
import pandas as pd data = {'col_1': [1], 'col_2': [2]} df = pd.DataFrame.from_dict(data) # 批量处理所有列,取出列表第一个元素 df = df.apply(lambda col: col.str[0]) df.to_csv("file.csv", index=False)
内容的提问来源于stack exchange,提问作者wwjdm
相关产品推荐
相关产品推荐

