相关疑难解决方法(0)

如何在pandas中创建分隔符read_csv更灵活wrt whitespace?

我需要使用存储在文件中的数据创建数据框.为此,我想使用read_csv方法.但是,分隔符不是很规则.有些列由tabs(\t)分隔,其他列由空格分隔.此外,一些列可以通过2或3个或更多个空格分隔,或者甚至通过空格和标签的组合(例如3个空格,两个标签然后1个空格).

有没有办法告诉大熊猫正确对待这些文件?

顺便说一下,如果我使用Python,我就没有这个问题.我用:

for line in file(file_name):
   fld = line.split()
Run Code Online (Sandbox Code Playgroud)

它完美无缺.它不关心字段之间是否有2或3个空格.即使空格和制表符的组合也不会造成任何问题.大熊猫可以这样做吗?

python csv whitespace dataframe pandas

54
推荐指数
2
解决办法
5万
查看次数

根据pandas中的索引连接多个列

作为这篇文章的后续内容,我想根据索引连接多个列,但我遇到了一些问题.在这个例子中,我得到一个与map函数相关的Attribute错误.可以理解这个错误的帮助,因为代码会执行等效的列连接.

    #data
    df = DataFrame({'A':['a','b','c'], 'B':['d','e','f'], 'C':['concat','me','yo'], 'D':['me','too','tambien']})

    #row function to concat rows with index greater than 2
    def cnc(row):
        temp = []
        for x in range(2,(len(row))):
            if row[x] != None:
                temp.append(row[x])
        return map(concat, temp)

    #apply function per row
    new = df.apply(cnc,axis=1)

    #Expected Output
    new

    concat me
    me too
    yo tambien
Run Code Online (Sandbox Code Playgroud)

谢谢,zach cp

python pandas

2
推荐指数
1
解决办法
5451
查看次数

使用 Pandas 读取制表符分隔的字段,某些行具有多个制表符

我正在尝试使用 Pandas 读取制表符分隔的 txt 文件。该文件如下所示:

数据文件样本

14.38   14.21   0.8951  5.386   3.312   2.462   4.956   1<p>
14.69   14.49   0.8799  5.563   3.259   3.586   5.219   1<p>
14.11   14.12   0.8911  5.422   3.302   2.723  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;   &nbsp;&nbsp;&nbsp;       5        1<p>
Run Code Online (Sandbox Code Playgroud)

有些行有额外的标签。如果我使用 read_csv 或 read_fwf,并指定 sep='\t'。我得到的结果是这样的:

d

0   15.26\t14.84\t0.871\t5.763\t3.312\t2.221\t5.22\t1<p>
1   14.88\t14.57\t0.8811\t5.554\t3.333\t1.018\t4.9 <p>
Run Code Online (Sandbox Code Playgroud)

对于我可以指定哪些参数来处理这个问题,您有什么建议吗?谢谢。

解决方案:

使用 pd.read_csv(filename, delim_whitespace=True)

pandas

2
推荐指数
1
解决办法
2030
查看次数

标签 统计

pandas ×3

python ×2

csv ×1

dataframe ×1

whitespace ×1