小编Swi*_*ike的帖子

熊猫根据标题读取文本文件切片列

想象一个看起来像这样的文本文件:

Places       Person  Number         Comments
   bar    anastasia      75        very lazy
  home        jimmy           nothing to say
 beach                    2                 
Run Code Online (Sandbox Code Playgroud)

将第一行视为包含我想要用于 Pandas 数据框的列名称的标题。您可以看到有空单元格。并且有一列包含带空格的字符串。这个文件有一个可读的模式,列之间至少有2个空格隔开,每列的信息基本上可以从列名的终点到上一个列名的终点是红色的。这没有歧义。


如果我做

df = pd.read_csv('text_file.txt')
Run Code Online (Sandbox Code Playgroud)

我将得到一个 3 x 1 的数据框,其中唯一的列被调用"Places Person Number Comments"。所以它无法理解表格格式。


如果我做

df = pd.read_csv('text_file.txt', delim_whitespace = True)
Run Code Online (Sandbox Code Playgroud)

它将创建大量的列,但将无法理解值中的空格Comments,并将拆分注释并将其发送到不同的单元格,如下所示:

          Places   Person Number Comments
bar    anastasia       75   very     lazy
home       jimmy  nothing     to      say
beach          2      NaN    NaN      NaN
Run Code Online (Sandbox Code Playgroud)

如果我做

df = pd.read_csv('text_file.txt', sep = '\s{2,}', engine = 'python')
Run Code Online (Sandbox Code Playgroud)

它将理解,只有当有两个或更多空间时,才可以将其视为另一列的一部分。所以这是正确的。但它无法理解有空单元格,并且会错误地将单元格从一列移动到另一列。

  Places     Person          Number   Comments
0    bar …
Run Code Online (Sandbox Code Playgroud)

python text pandas

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

标签 统计

pandas ×1

python ×1

text ×1