如何在pydatatable中选择使用未格式化名称创建的列?

问题描述 投票:0回答:1

我已经创建了一个数据表,

DT_EX = dt.Frame({'Year sold':[2000,2002,2004,2006],'Year Construction':[1990,1992,1994,1996]})

及其视图为>>

Out[4]: 
   | Year sold  Year Construction
-- + ---------  -----------------
 0 |      2000               1990
 1 |      2002               1992
 2 |      2004               1994
 3 |      2006               1996

[4 rows x 2 columns]

在这里,我们注意到每列在两个单词之间都包含一个空格,

In [7]: DT_EX.names

Out[7]: ('Year sold', 'Year Construction')

我现在选择第一列为,

DT[:,f.Year sold] 

抛出错误

 File "<ipython-input-5-29b1f34a6dc6>", line 1
    DT[:,f.Year sold]
                   ^
SyntaxError: invalid syntax

现在我在列名周围加上一些引号并尝试选择,

In [6]: DT[:,f.`Year sold`]                                                                                                                                                         
 File "<ipython-input-6-a007534b786e>", line 1
    DT[:,f.`Year sold`]
           ^
SyntaxError: invalid syntax

所以如何指定这类列名,我可以进行一些字符串操作,例如使用下划线_ Year_sold或Year_Construction等调整空间。

在加载数据集时,fread()中是否有任何选项来处理这种类型的列名?

  • 将所有列转换为小写或大写名称

  • 删除列名之间的所有特殊符号空间

  • 如果需要,缩短列名的长度。

我创建了一个数据表,DT_EX = dt.Frame({'Year sold':[2000,2002,2004,2006],'Year Construction':[1990,1992,1994,1996]})及其视图如[4]:| |销售年份建设年份-+ ------...

python py-datatable
1个回答
0
投票

这应该可以工作:

© www.soinside.com 2019 - 2024. All rights reserved.