首页 > 解决方案 > 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}

有人可以告诉我为什么它不起作用吗?

标签: pythonpandas

解决方案


这不起作用,因为参数converters需要一个函数字典来转换某些列中的值。键可以是整数或列标签。没有一个['Struct','{','}']是列标签。

为了阅读此文本文件,您需要对其进行预处理以摆脱'Struct', '{', '}'. 即,您需要将其转换为正确的 CSV 文件。


推荐阅读