python - 如何将 python dictReader 用于多个分隔符?
问题描述
我有这样的 CSV 文件
slNo,quatinty,data1,data2,data2
1|2|3|sssa|QQ
1|2|3|sssa|QQ
1|2|3|sssa|QQ
1|2|3|sssa|QQ
1|2|3|sssa|QQ
第一行是逗号分隔的分隔符,所有其他行都是'|' 分开。我为此使用了python dict阅读器。有什么我可以在这个文件中使用字典阅读器的吗
reader = csv.DictReader(data, delimiter=',')
解决方案
您可以pandas
为此使用:
import pandas as pd
df = pd.read_csv('FILE.csv', skiprows=1, delimiter='|', header=None)
with open('FILE.csv') as f:
df.columns = f.read().strip().split("\n")[0].split(",")
print(df)
这是我的输出:
slNo quatinty data1 data2 data2
0 1 2 3 sssa QQ
1 1 2 3 sssa QQ
2 1 2 3 sssa QQ
3 1 2 3 sssa QQ
4 1 2 3 sssa QQ
要获取字典,请使用df.to_dict()
:
print(df.to_dict())
输出:
{'slNo': {0: 1, 1: 1, 2: 1, 3: 1, 4: 1}, 'quatinty': {0: 2, 1: 2, 2: 2, 3: 2, 4: 2}, 'data1': {0: 3, 1: 3, 2: 3, 3: 3, 4: 3}, 'data2': {0: 'QQ', 1: 'QQ', 2: 'QQ', 3: 'QQ', 4: 'QQ'}}
使用 Pandas 数据框要容易得多。
推荐阅读
- python - python中的内存数据结构是什么?
- javascript - 使用ajax将表单提交给php而不刷新页面
- javascript - 使用 jQuery 检索表中的 id 数据属性
- machine-learning - 当需要输入多个文本特征时,如何处理支持向量机和文本数据?
- javascript - 在 ReactJS 中传递道具和访问对象值
- php - Laravel 8.x - 自定义成功响应中的 URI
- python - Python tkinter 按钮文本未出现
- javascript - 如何基于innerWidth JavaScript native添加或删除函数
- javascript - 尝试以设定的时间间隔在 nivo 中创建图表
- python - 不知道除数时如何保留小数