python - Python:用熊猫读取CSV文件时替换值
问题描述
我有一个 txt 文件,其中包含以下内容:
Struct{a,b,c}
Struct {d,f,z}
我想阅读这个文件并得到这个输出:
0 1 2
0 a b c
1 d f z
我试图运行这段代码
import numpy as np
import pandas as pd
def conv(val, default_val=''):
try:
return (val)
except ValueError:
return default_val
x = pd.read_csv('/Users/me/Desktop/connector/connector.txt', sep=",", header=None, converters={'Struct': conv, '{': conv, '}': conv })
print(x)
但这是输出:
0 1 2
0 Struct{x y z}
1 Struct{a b c}
有人可以告诉我为什么它不起作用吗?
解决方案
这不起作用,因为参数converters
需要一个函数字典来转换某些列中的值。键可以是整数或列标签。没有一个['Struct','{','}']
是列标签。
为了阅读此文本文件,您需要对其进行预处理以摆脱'Struct', '{', '}'
. 即,您需要将其转换为正确的 CSV 文件。
推荐阅读
- pyspark - Spark shell 打开时出现异常:无法从 URL [文件:log4j 属性] 读取配置文件
- wordpress - 如何阻止重力表单提交保存到本地数据库?
- java - 如何使用 Selenium/Java 在前钩子中动态获取正确的页面类?
- sqlite - 在内存中使用 xUnit/EFCore/sqlite 时测试之间的数据溢出
- ansible - 使用 if 条件将 True 或 False 分配给 Ansible 中的gather_facts 不起作用
- spartacus-storefront - 更改特定组件的响应媒体的媒体类型
- c# - 如何从 HttpRequestMessage.Properties 迁移到 HttpRequestMessage.Options
- kotlin - Elvis 运算符,如果 != null 则返回或执行完全不同的操作
- javascript - 使用 expressjs 提供静态文件
- opencv - 图像中的光流范围是多少?