这可能是一个愚蠢的问题,但对于我的生活,我无法弄清楚如何让 Julia 读取列名以数字开头的 csv 文件并在 DataFrames 中使用它们。如何做到这一点?

例如,假设我有包含以下内容的文件“test.csv”:

,1Y,2Y,3Y
1Y,11,12,13
2Y,21,22,23

如果我只使用 readtable(),我会得到这个:
julia> using DataFrames

julia> df = readtable("test.csv")
2x4 DataFrames.DataFrame
| Row | x    | x1Y | x2Y | x3Y |
|-----|------|-----|-----|-----|
| 1   | "1Y" | 11  | 12  | 13  |
| 2   | "2Y" | 21  | 22  | 23  |

是什么赋予了?我怎样才能让列名成为它们应该是的,“1Y,”2Y 等等?

最佳答案

问题是在 DataFrames 中,列名是 symbols ,这并不意味着(见下面的评论)以数字开头。

您可以通过执行例如看到这一点typeof(:2) ,它将返回 Int64 ,而不是(如您所料) Symbol 。因此,为了让你的列名成为可用的格式,DataFrames 必须在它前面加上一个字母 - typeof(:x2) 将返回 Symbol ,因此是一个有效的列名。

关于Julia DataFrame 列以数字开头?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34858166/

10-13 05:51